Atmel328 ;Serial Probleme

Gast #4703369
Lesenswert?

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
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren