Суббота, Сентябрь 19, 2020

RS-232 проверка стартового бита

//Программа проверяет поступление символа каждые 1000мс(1с).Если в течении одной секунды символ не будет получен программа выведет в терминал сообщение "no character".
#include<16f628a.H>
#use    delay(clock=4000000)
#fuses  INTRC_IO,NOWDT,NOMCLR,NOPROTECT,NOCPD,NOBROWNOUT
#use    fast_io(A)
#use    rs232(BAUD=9600,XMIT=PIN_A2,RCV=PIN_A3)
void main()
{
    setup_comparator(NC_NC_NC_NC);
    SET_TRIS_A(0b00001000);
    int32 timeout;
    while(TRUE){
        timeout=0;
        while(!kbhit()&&(++timeout<50000)) //kbhit()-возвращает 1,если обнаружен корректный стартовый бит
            delay_us(10);
        if(kbhit())
            printf("%c\r\n",(getc()));           //возврат каретки,новая строка
        else
            printf("no character\r\n");
    }
}



 

НАЗАД                                                                                                                                         ДАЛЕЕ


Back to Top