//! Checks Target Vdd - Updates Target Vdd LED & status //! //! Updates \ref cable_status //! uint8_t bdm_checkTargetVdd(void) { #if (HW_CAPABILITY&CAP_VDDSENSE) if (bdm_targetVddMeasure() > VDD_2v) { RED_LED_ON(); if (bdm_option.targetVdd == BDM_TARGET_VDD_OFF) cable_status.power = BDM_TARGET_VDD_EXT; else cable_status.power = BDM_TARGET_VDD_INT; } else { RED_LED_OFF(); if (bdm_option.targetVdd == BDM_TARGET_VDD_OFF) cable_status.power = BDM_TARGET_VDD_NONE; else { // Possible overload cable_status.power = BDM_TARGET_VDD_ERR; VDD_OFF(); } } #else // No target Vdd sensing - assume external Vdd is present cable_status.power = BDM_TARGET_VDD_EXT; #endif // CAP_VDDSENSE if ((cable_status.power == BDM_TARGET_VDD_NONE) || (cable_status.power == BDM_TARGET_VDD_ERR)) return BDM_RC_VDD_NOT_PRESENT; return BDM_RC_OK; }
/** Perform MMC block write from diskSect */ unsigned char WritePhysicalSector() { unsigned char c; //RED_LED = LED_ON; sectorAddress.l = sectorAddress.l * 2; //convert to bytes (combined with 8bit shift) c=MmcCommand(0x40 | 24, sectorAddress.b.b2, sectorAddress.b.b1, sectorAddress.b.b0, 0); sectorAddress.l = sectorAddress.l >> 1; //convert back to blocks //ConsolePutChar('w'); //ConsolePutHex8(c); if (c!=0x00) return (c); //Error - MMC did not go to write mode /* while (c!=0x00) { //wait for BUSY token, if you get 0x01(idle), it's an ERROR! c = SPIGetChar(); ConsolePutHex8(c); } */ dataBufPtr = diskSect.raw.buf; SPIPutCharWithoutWaiting(0xFE); SPIWait(); for (c=0;c<128;c++){ SPIPutCharWithoutWaiting(*dataBufPtr++); SPIWait(); SPIPutCharWithoutWaiting(*dataBufPtr++); SPIWait(); SPIPutCharWithoutWaiting(*dataBufPtr++); SPIWait(); SPIPutCharWithoutWaiting(*dataBufPtr++); SPIWait(); } //ConsolePutChar('-'); c = SPIGetChar(); //crc 1st byte (sends 0xff) c = SPIGetChar(); //crc 2nd byte (sends 0xff) c = SPIGetChar(); //ConsolePutHex8(c); //This prints xxx00101, (usually e5) when data ok // while (SPIGetChar()!=0xff) //busy wait moved to mmcCommand // ; // Wait until MMC not busy. SPI8Clocks(16); DeselectMSD(); SPI8Clocks(16); RED_LED_OFF(); return 0; }
//Initialize IO control ports of LEDS void InitIOForLEDs() { LED_DDR |= (1<<RED_LED); LED_DDR |= (1<<GREEN_LED); RED_LED_OFF(); GREEN_LED_ON(); }
int main(void) { int8_t i; rc_init(); rfm70_init(RFM70_MODE_PTX, rfm70_addr); RED_LED_OUT(); RED_LED_OFF(); sei(); while(1) { rc_get_code(&code); //RED_LED_TOGGLE(); tx_buf[0] = code.addr; tx_buf[1] = code.data; #if 0 for(i = 7; i >= 0; i--) { if(code.data & (1 << i)) { RED_LED_ON(); _delay_ms(50); RED_LED_OFF(); _delay_ms(50); } RED_LED_ON(); _delay_ms(50); RED_LED_OFF(); _delay_ms(50); _delay_ms(500); } #endif if(0 == rfm70_transmit_packet(tx_buf,sizeof(tx_buf))) { RED_LED_TOGGLE(); } _delay_ms(70); } }
void core1_main(void) { //asm volatile ("mov sp,%0" : :"r" (ram1)); while(1) { for(j=0; j < 300000; j++); //wait for some time RED_LED_ON(); for(j=0; j < 300000; j++); //wait for some time RED_LED_OFF(); } }
int main(void) { power_on_delay(); timer0_init(); rfm70_init(RFM70_MODE_PTX, addr); RED_LED_OUT(); RED_LED_OFF(); sei(); // enable interrupts globally while(1) { sub_program_1hz(); } }
int main(void) { _delay_ms(1000); //power_on_delay RFM73_Initialize(); RED_LED_OUT(); RED_LED_OFF(); set_sleep_mode(SLEEP_MODE_PWR_DOWN); sei(); // enable interrupts globally sleep_mode(); // go to sleep while(1) { Receive_Packet(); sleep_mode(); } }
void Receive_Packet(void) { UINT8 i, len, chksum = 0; RFM73_Receive_Packet(rx_buf, &len); for(i=0;i<16;i++) { chksum +=rx_buf[i]; } if(chksum==rx_buf[16]&&rx_buf[0]==0x30) { /* Packet received correctly */ RED_LED_ON(); _delay_ms(50); RED_LED_OFF(); } }
usbMsgLen_t usbFunctionWrite(uint8_t *data, uint8_t len) { if(ledState == data[0]) { /* same value as present */ return 1; } else { ledState = data[0]; } /* LED for Capslock */ if(ledState & 0x2) { RED_LED_ON(); } else { RED_LED_OFF(); } return 1; }
int main(void) { power_on_delay(); timer0_init(); RED_LED_OUT(); RED_LED_OFF(); if(rfm70_init(RFM70_MODE_PRX, addr) != 0) { RED_LED_ON(); } sei(); // enable interrupts globally rfm70_set_ack_payload(RFM70_PIPE0, ack_pld, sizeof(ack_pld)); while(1) { Receive_Packet(); } }
int main(void) { uint8_t i; bool timeout = false; RED_LED_OUT(); GREEN_LED_OUT(); RED_LED_OFF(); GREEN_LED_OFF(); usbInit(); usbDeviceDisconnect(); /* enforce re-enumeration, do this while interrupts are disabled! */ i = 0; while(--i){ /* fake USB disconnect for > 250 ms */ wdt_reset(); _delay_ms(1); } usbDeviceConnect(); sei(); for(;;){ /* main event loop */ wdt_reset(); usbPoll(); if((get_input_requested == true) || ((timeout == true) && (feature_report_buf.ucReportingState != HID_USAGE_SENSOR_PROPERTY_REPORTING_STATE_NO_EVENTS_SEL_ENUM)) ) { if(get_input_requested == true) { get_input_requested = false; input_report_buf.ucEventType = HID_USAGE_SENSOR_EVENT_POLL_RESPONSE_SEL_ENUM; } else if(timeout == true) { timeout = false; input_report_buf.ucEventType = HID_USAGE_SENSOR_EVENT_DATA_UPDATED_SEL_ENUM; input_report_buf.sGyroXValue++; } RED_LED_TOGGLE(); /* called after every poll of the interrupt endpoint */ usbSetInterrupt((void *)&input_report_buf, sizeof(input_report_buf)); } _delay_ms(2); if(i++ == 0) { timeout = true; } } }
/*============================================================================== * DESCRIPTION: * @param * @return * @precondition * @postcondition * @caution * @notes *============================================================================*/ void OT_GPIO_init(OT_GPIO_CB_T *cb, void *cbarg) { ot_gpio_cb = cb; ot_gpio_cbarg = cbarg; SENSOR_ON(); TRIGGER_IN_DISABLE(); TRIGGER_OUT_OFF(); GPIO_Init(GREEN_LED_PORT, GREEN_LED_PIN, GPIO_MODE_OUT_PP_LOW_SLOW); GREEN_LED_OFF(); GPIO_Init(RED_LED_PORT, RED_LED_PIN, GPIO_MODE_OUT_PP_LOW_SLOW); RED_LED_OFF(); #if defined(WAKEUP_BUTTON) BUTTON_DISABLE(); #endif // WAKEUP_BUTTON DIP_ENABLE(); return; }
int main(void) { uint8_t i; power_on_delay(); rfm70_init(RFM70_MODE_PRX, addr); RED_LED_OUT(); RED_LED_OFF(); usbInit(); usbDeviceDisconnect(); /* Disconnect for some time to enforce reenumeration */ i = 0; while(--i) { _delay_ms(1); } usbDeviceConnect(); sei(); // enable interrupts globally while(1) { usbPoll(); Receive_Packet(); } }
void Receive_Packet(void) { uint8_t i, len, chksum = 0; rfm70_receive_packet(rx_buf, &len); if(len == 0) { /* No packet received */ return; } for(i=0;i<16;i++) { chksum +=rx_buf[i]; } if(chksum==rx_buf[16]&&rx_buf[0]==0x30) { /* set ack payload */ rfm70_set_ack_payload(RFM70_PIPE0, ack_pld, sizeof(ack_pld)); /* Packet received correctly */ RED_LED_ON(); _delay_ms(50); RED_LED_OFF(); } }