void WatchDogCC2500(void) { static int Estat = 0; switch (Estat) { case 0: if (PIN_INT_2500 == 1) ++Estat; break; case 1: if (PIN_INT_2500 == 1) ++Estat; else --Estat; break; case 2: if (PIN_INT_2500 == 1) ++Estat; else --Estat; break; case 3: if (PIN_INT_2500 == 1) ++Estat; else --Estat; break; case 4: // El pobre 2500 s'ha saturat per un excés de trames // Solució radical RfEnd(); RfInit(); // Quin peligro! Estat = 0; break; } }
int main(void) { ADPCFG = 0xFFFF; // Ports as digital, not analog #warning "Building for dsPIC33FJ128GP804" ETH_CS = 1; RF_SPI_CS = 1; FLASH_CS1 = 1; FLASH_CS2 = 1; SysInitGpio(); RF_POWER = 0; SENSOR_PWR = 0; CNPU2bits.CN21PUE = 1; // Setup UART1 to ICSP pins PPSUnLock; iPPSOutput(OUT_PIN_PPS_RP0, OUT_FN_PPS_U1TX); iPPSInput(IN_FN_PPS_U1RX, IN_PIN_PPS_RP1); PPSLock; ExtIntInit(); //spiInit(1); UartInit(1, 115200*2); printf("Hello world!\r\n"); // Disable nested ISR //INTCON1bits.NSTDIS = 1; RtosTaskInit(); RfInit(); DbgInit(); RtosTaskRun(); //while(1); return 0; }