Hallo, ich verzweifele gerade, und hoffe es kann mir hier wer helfen. Ich habe ein Board von einer VR Brille auf dem ein Atme328 darauf gelötet ist. Ich hab ihn über den ICSP Header gefunden. Jetzt habe ich versucht eine kleines Programm hochzuladen das mir Serial an mein Termite (Serial Com Programm) einen einfachen Text sendet leider kommt aber nur Blödsinn an. Code Ausschnitt: void uploadFont() { uint16_t byte_count = 0; byte bit_count=0; byte ascii_binary[0x08]; // move these local to prevent ram usage uint8_t character_bitmap[0x40]; int font_count = 0; osd.clearScreen(); // enable UART for update Serial.begin(9600); pinMode(7, OUTPUT); digitalWrite(7, false); /* upload part ..... */ Serial.print("Font update done. Restarting system..\n\n"); delay(2000); asm volatile (" jmp 0"); // softstart by jumping to start vector // REBOOT, WILL NEVER GET HERE } Ich benutze die Wiring lib für die Serielle Kommunikation Gruß
:
Verschoben durch User
Glaskugel: - Code Zeile 42? - Warum der jmp? - Wieviel Mhz? - Wo ist die Baudberechnung? - Was ist die Wiring lib?!?
die Wiring lib mit der kann man die Ausgänge Arduino like ansteuern. Hab das ganze aber jetzt anders gelöst, ich will jetzt mal von Grund auf anfangen-> #define USART_BAUDRATE 9600 #define BAUD_PRESCALE (((F_CPU/(USART_BAUDRATE*16UL)))-1) unsigned char USART_receive(void){ while(!(UCSR0A & (1<<RXC0))); return UDR0; } void USART_send( unsigned char data){ while(!(UCSR0A & (1<<UDRE0))); UDR0 = data; } void loop() { char recieved_byte; UCSR0B |= (1<<RXEN0) | (1<<TXEN0); UCSR0C |= (1<<UCSZ00) | (1<<UCSZ01); UBRR0H = (BAUD_PRESCALE >> 8); UBRR0L = BAUD_PRESCALE; while (true) { recieved_byte = USART_receive(); if (recieved_byte != 0) { digitalWrite(7, true); USART_send(recieved_byte); //callback osd.printMax7456Char(recieved_byte, 1, 1); } delay(1000); digitalWrite(7, false); } } Das müsste doch so funktionieren ? Bei den Mhz kann ich es nur erahnen aber ich denke es sind 16Mhz.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.