có bác nào biết cách sử dụng watchdog trong keil ,su dung 89s5X không ?
bác BẰC HẢI có thể giúp em không ?
bác BẰC HẢI có thể giúp em không ?
//---------------------------------------------------- // thghi watchdog se tran sau khoang 17ms neu khong duoc xoa lai tu dau. #include <Treg52.h> #include <Tdelay.h> void HdelayWDT_ms(unsigned int ms) { unsigned char btam; while(ms--) { btam = 120; //reset watchdog timer WDTRST = 0x1E; WDTRST = 0xE1; //delay khoang 1000us while(btam--){} } } void main (void) { //Gia tri ban dau cho watchdog timer WDTRST = 0x1E; WDTRST = 0xE1; while(1) { P0 ++; HdelayWDT_ms(500); //mach se chay binh thuong do da reset watchdog timer //trong ham delay //Neu nhan p37, reset lai vdk if (P37 == 0) { Hdelay_ms(20); //do delay qua lau 20ms > 17mm => watchdog timer tran //mach se tu reset lai } if(!P36) { HdelayWDT_ms(20); P0--; HdelayWDT_ms(500); } //Reset lai watchdog timer, o cho no tran WDTRST = 0x1E; WDTRST = 0xE1; } }
#include <AT89x51.h> #define LED P1; void tre(); void tre(void) { unsigned int i; for (i=0;i<36000;i++) {;} } main() { unsigned char P1=128; for (;;) { P1=P1|(P1>>1); if(P1==255) { tre(); P1=128; } tre(); } }
Comment