Esempio n. 1
0
void SWITCH::sw_init(void)
{
    LPC_GPIO2->FIODIR |= (1<<4);
    LPC_GPIO2->FIODIR |= (1<<5);
    LPC_GPIO2->FIODIR |= (1<<6);
    LPC_GPIO2->FIODIR |= (1<<7);
    eint3_enable_port2(4,eint_rising_edge,car_con);
    eint3_enable_port2(5,eint_rising_edge,glcd_con);
    eint3_enable_port2(6,eint_rising_edge,home_dst);
    eint3_enable_port2(7,eint_rising_edge,reset_all);
}
 bool init(void)
 {
     p2_wire0.setAsOutput();
     const uint8_t port2_1 = 1;
     eint3_enable_port2(port2_1, eint_rising_edge, switch_edge);
     LE.init();
     vSemaphoreCreateBinary(sem);
     return true;
 }
int main(void)
{
    buttonSemaphore = xSemaphoreCreateBinary();
    port2Pin6Init();
    eint3_enable_port2(6, eint_falling_edge, port6ButtonPressInterrupt);
    xTaskCreate(port6ButtonPressTask, "Button Press", STACK_BYTES(2048), 0, PRIORITY_HIGH, 0);
    xTaskCreate(beggingForSemaphore, "I NEED SEMAPHOREZ", STACK_BYTES(2048), 0, PRIORITY_HIGH, 0);
    vTaskStartScheduler();
    return -1;
}
int main(void)
{
        I2C_init(I2C_SPEED);                 //init i2c master for 100k
        init_time_sd();
        vSemaphoreCreateBinary( event_signal ); // Create the semaphore
        xSemaphoreTake(event_signal, 0);        // Take semaphore after creating it.
        scheduler_add_task(new terminalTask(PRIORITY_HIGH));
        TaskHandle_t test1 = NULL;
        xTaskCreate((void(*)(void *))read_from_slave, "i2c_receive_task", 1024, NULL, PRIORITY_HIGH, &test1);
        eint3_enable_port2(0,eint_rising_edge,data_avail_isr);   //register for rising edge interrupt
        scheduler_add_task(new send_CAN_data(PRIORITY_MEDIUM));
        scheduler_add_task(new send_mailbox_config(PRIORITY_MEDIUM));
        scheduler_add_task(new sendTrigTask()); //Task for getting the sensor data
        scheduler_start(); ///< This shouldn't return
        return -1;
}
void setup() {

    LPC_SC->PCLKSEL0 &= ~(3 << 12);
    LPC_SC->PCLKSEL0 |= (1 << 13);                  // set CLK/1

    // INPUTS //
    LPC_GPIO2->FIODIR &= ~(1 << LLEFTSENSOR);
    LPC_GPIO2->FIODIR &= ~(1 << LEFTSENSOR);
    LPC_GPIO2->FIODIR &= ~(1 << MIDDLESENSOR);
    LPC_GPIO2->FIODIR &= ~(1 << RIGHTSENSOR);
    LPC_GPIO2->FIODIR &= ~(1 << RRIGHTSENSOR);

    // OUTPUTS //
    LPC_GPIO2->FIODIR |= (1 << LEFTMOTOR);
    LPC_GPIO2->FIODIR |= (1 << RIGHTMOTOR);
    LPC_GPIO0->FIODIR |= (1 << AMUX);
    LPC_GPIO0->FIODIR |= (1 << BMUX);

    eint3_enable_port2(RRIGHTSENSOR, eint_rising_edge, tickFunction);
    // 2 = turn right
    // 1 = straight
    // 0 = station
}