示例#1
0
// 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);
    }
}
示例#2
0
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();
}
示例#3
0
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);
}
示例#4
0
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;
		
	} 
}
示例#5
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;
    }
}