int main(void) { // Setup // Set pin directions & initial state DDRB = 0xFF; txoff(); PORTB &= ~(1<<DATA_PIN); // Create message char *message = "w3vc"; int message_len = 4; int index = 0; while(1) { // Send message txon(); _delay_ms(KEY_UP_DELAY_MS); for(index = 0; index < message_len; index++){ sendChar(message[index]); } _delay_ms(TX_HOLD_MS); txoff(); _delay_ms(TX_OFF_DELAY_MS); } }
void usbdev_write_endpoint(uint8_t ep, uint8_t* data, int len) { txon(); USB_CTRL = DEV_WRITE(ep); TX_PLENGTH = len; while (USB_CTRL & WR_EN) { TX_DATA = (data[3]<<24) | (data[2]<<16) | (data[1]<<8) | (data[0]); data += 4; } USB_CTRL = 0; SIE_cmd(EP2IDX(ep)); SIE_cmd(SIE_VALIDATE_BUFFER); }