سلام دوستان من یک بردی طراحی کردم که با یوزارت 0 به SIM800 وصل میشم و با یوزارت 1 به ADM485 .
مشکل من اینجاست که وقتی دوتا وقفه یا هم فعال میشه اطلاعات دوتا یوزارت با هم قاطی میشه . یعنی من تابعی دارم که شماره کسی که به SIM800 پیام داده به دست میاره . وقتی که ار تباط یوزارت 1 قطعه درست کار میکنه ولی وقتی دوتا ارتباط با هم برقرار باشند اطلاعات یوزارت 1 وارد یوزارت 0 میشه به طوری که به جای شماره پیام دهنده اطلاعات یوزات 1 نمایش میده .
من میخواستم وقتی SIM 800 پیام یا زنک داره و وقفه یوزارت 0 فعال شد یوزارت 1 غیر فعال کنم تا وقتی جواب SIM800 دادم دوباره فعالش کنم ولی چون این مشکل پیش میاد و اطلاعات یوزارت 1 وارد یوزارت 0 میشه دیتاها از دست میره . چه راه حلی پیش مهاد میدید.
اینم وقفه دریافت ها
مشکل من اینجاست که وقتی دوتا وقفه یا هم فعال میشه اطلاعات دوتا یوزارت با هم قاطی میشه . یعنی من تابعی دارم که شماره کسی که به SIM800 پیام داده به دست میاره . وقتی که ار تباط یوزارت 1 قطعه درست کار میکنه ولی وقتی دوتا ارتباط با هم برقرار باشند اطلاعات یوزارت 1 وارد یوزارت 0 میشه به طوری که به جای شماره پیام دهنده اطلاعات یوزات 1 نمایش میده .
من میخواستم وقتی SIM 800 پیام یا زنک داره و وقفه یوزارت 0 فعال شد یوزارت 1 غیر فعال کنم تا وقتی جواب SIM800 دادم دوباره فعالش کنم ولی چون این مشکل پیش میاد و اطلاعات یوزارت 1 وارد یوزارت 0 میشه دیتاها از دست میره . چه راه حلی پیش مهاد میدید.
اینم وقفه دریافت ها
interrupt [USART0_RXC] void usart0_rx_isr(void)
{
char data;
data=UDR0;
if(data>33&&data<125){
rx_buffer[i]=data;
i++;
}
}
interrupt [USART1_RXC] void usart1_rx_isr(void)
{
char data1;
data1=UDR1;
rx_buffer1[rx_buffer1_counter]=data1;
rx_buffer1_counter++;
}