اطلاعیه

Collapse
No announcement yet.

تداخل 2 وقفه USART در اتمگا 64

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    تداخل 2 وقفه USART در اتمگا 64

    سلام دوستان من یک بردی طراحی کردم که با یوزارت 0 به SIM800 وصل میشم و با یوزارت 1 به ADM485 .
    مشکل من اینجاست که وقتی دوتا وقفه یا هم فعال میشه اطلاعات دوتا یوزارت با هم قاطی میشه . یعنی من تابعی دارم که شماره کسی که به 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++;
    }


    جدیدترین ویرایش توسط rasool1370; ۲۲:۴۸ ۱۳۹۷/۱۰/۱۲.
لطفا صبر کنید...
X