// Handle toggling the motor void taskMotor(void *pvParameters) { float cur_speed; int hz = 1; while(1) { cur_speed = GetCurrentSpeed(); if(cur_speed > 0.0f) { hz = (int)floorf(cur_speed / 10.0f); if(hz < 1) hz = 1; mPORTFToggleBits(BIT_8); } else { hz = 1; mPORTFClearBits(BIT_8); } vTaskDelay((1000 / hz) / portTICK_PERIOD_MS); } }
void InitializeSystem() { SYSTEMConfigWaitStatesAndPB(CLOCK_FREQ); mOSCSetPBDIV(OSC_PB_DIV_4); // Set to get 20MHz PB clock //mOSCSetPBDIV(OSC_PB_DIV_2); CheKseg0CacheOn(); mJTAGPortEnable(0); // Initialize the pins to all digital output and driven to ground. // Exception is RE7 and RE6 which are switch inputs PORTSetPinsDigitalIn(IOPORT_E, BIT_6); PORTSetPinsDigitalIn(IOPORT_E, BIT_7); mPORTASetPinsDigitalOut(0xFFFF); mPORTBSetPinsDigitalOut(0xFFFF); mPORTCSetPinsDigitalOut(0xFFFF); mPORTDSetPinsDigitalOut(0xFFFF); mPORTESetPinsDigitalOut(0xFF3F); mPORTFSetPinsDigitalOut(0xFFFF); mPORTGSetPinsDigitalOut(0xFFFF); mPORTAClearBits(0xFFFF); mPORTBClearBits(0xFFFF); mPORTCClearBits(0xFFFF); mPORTDClearBits(0xFFFF); mPORTEClearBits(0xFF3F); mPORTESetBits(0x000F); // LED latches need to be set high for off mPORTFClearBits(0xFFFF); mPORTGClearBits(0xFFFF); INTEnableSystemMultiVectoredInt(); #ifdef SANITY_CHECK mLED_Green_On(); #endif //LCD_Initialize(); //WIFI_Initialize(); //SPRINKLER_Initialize(); //RTCC_Initialize(); //SERIALUSB_Initialize(); SDCARD_Initialize(); TCPIP_Initialize(); }
void InitializeIO(void) { //Initializing CSN and CE pins as output mPORTFSetPinsDigitalOut(BIT_0 | BIT_1); mPORTFClearBits(BIT_0 | BIT_1); //Initializing IRQ pin as input mPORTDSetPinsDigitalIn(BIT_13); mPORTDClearBits(BIT_13); //Setting CSN bit active LATFbits.LATF1 = 1; //Initializing LEDs mPORTDSetPinsDigitalOut(BIT_1 | BIT_2); mPORTDClearBits(BIT_1 | BIT_2); //Initializing MOSI/SDO1 and SCK as output mPORTDSetPinsDigitalOut(BIT_10); mPORTDSetPinsDigitalOut(BIT_0); //Initializing MISO/SDI1 as input mPORTCSetPinsDigitalIn(BIT_4); }
int main() { mJTAGPortEnable(DEBUG_JTAGPORT_OFF); mPORTFClearBits(BIT_0); // Make all lower 8-bits of PORTA as output mPORTFSetPinsDigitalOut( BIT_0 ); // Start timer1, Fpb/256, max period OpenTimer1(T1_ON | T1_PS_1_256 | T1_SOURCE_INT, 0xFFFF); // The main loop while( 1) { WriteTimer1(0); while ( TMR1 < LONG_DELAY); PORTF ^= BIT_0; } }
int main() { mJTAGPortEnable(DEBUG_JTAGPORT_OFF); mPORTFClearBits(BIT_0); // Make all lower 8-bits of PORTA as output mPORTFSetPinsDigitalOut( BIT_0 ); TRISE=0x0; PORTE = 0x0f; // Start timer1, Fpb/256, max period OpenTimer1(T1_ON | T1_PS_1_256 | T1_SOURCE_INT, 0xFFFF); // The main loop PORTSetPinsDigitalIn(IOPORT_D, BIT_5); mCNOpen(CN_ON, CN14_ENABLE, 0); // Read the port to clear any mismatch on change notice pins int dummy = PORTD; // Clear change notice interrupt flag ConfigIntCN(CHANGE_INT_ON | CHANGE_INT_PRI_2); INTEnableSystemMultiVectoredInt(); uart1_init(115200); setbuf(stdin, NULL); //no input buffer (for scanf) setbuf(stdout, NULL); //no output buffer (for printf) printf ("Hello World!\r\n"); while( 1) { putchar(getchar()); WriteTimer1(0); while ( TMR1 < LONG_DELAY); PORTE+=1; } }