Atmel328 ;Serial Probleme

Gast #4703369
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ß
Angehängte Dateien:
Gast #4703389
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.