ВходНаше всё Теги codebook PARTS Поиск Опросы Закон Понедельник
25 мая
/998762
Топик полностью
Гyдвин (25.04.2020 13:10, просмотров: 289) в ответ на Тут на форуме недавно проскакивало про "для души". Получайте ;) MSP выпилили отсюда, а оно вполне еще даже ниЧО - вон как изящно на задачку легло... Надыбал у себя коробку вот с такими девайсами - это датчики с радиоканалом на CC1101. Термодатчик и измеритель импеданса на частотах до 4 МГц имеется прямо контроллере G2553. Потому и MSP, а не ардуины с китай-датчиками. Одна из платок прекрасно прижилась вместе с антенной в качестве "центрального процессора" для руления - автор: Гyдвин
Клевый "main loop" получился. И особливо клевый парсинг ответов модема, соответственно и размер кода ;) 
 962 bytes of CODE  memory
 208 bytes of CONST memory (+  6 bytes shared)
   11 bytes of DATA  memory (+ 35 bytes shared)

#define OK 0x009A
#define ACT 0x027D
#define NOACT 0x027C
#define REG 0x0233
#define NOREG 0x0232 //+ 0x0234
#define CONNECT 0x020A
#define HTTPOK 0x036B

//------------------------------------------------------------ /// MAIN LOOP ////// while (1) { if(http_send()) // посылка отправлена { rf_cal(); // калибровка радио clear_data(); // обнуление данных после посылки delay(600); // интервал 600*0.75 сек. } else delay(2); // повторить попытку отправки через 1.5 сек. } } //------------------------------------------------------------ #pragma vector=WDT_VECTOR __interrupt void watchdog_timer(void) { if (timeout) timeout--; if (del_075) del_075--; if (pump) pump--; else P1OUT&=~BIT0; // выключим насос //LPM4_EXIT; } #pragma vector=USCIAB0RX_VECTOR __interrupt void usart_interrupt(void) { unsigned char ch; ch = UCA0RXBUF; cnt_ch++; if (ch!=0x0A) { if (ch==0x0D) { if (code !=0 ) { //debug(code); #pragma diag_suppress=Pa082 if (code == pattern) pattern=0; #pragma diag_default=Pa082 code=0; } } else code=(code+ch); } } #pragma vector=NMI_VECTOR __interrupt void nmi_interrupt(void) { soft_reset();// пересброс // ((void (*)())0x170)(); // Invalid fetch ("call #0170h") // пересброс }
Ответить
Ответы