Gast
#3304511
Hallo liebes Forum !!!
Ich habe ein kleines Programm geschrieben, in dem eine Ausgabe über ein
Display erfolgt und danach Daten von der ersten seriellen Schnittstelle
zur zweiten weitergereicht werden.
Die Libarys sind von Peter Fleury, was die Uart Unterstützung angeht.
Das Phänomen ist, dass nach dem Start der Ablauf korrekt abgearbeitet
wird (d.h. Display ansteuern, und while-Schleifen durchlauf), dann aber
erfolgt alles nochmal...das soll so natürlich nicht sein.
Anbei ein Bild der Datenübertragung, man kann sehr schön sehen, dass
"TI" (also zur Initialisierung des Displays zweimal gesendet wird).
(In rot umrandet = eigentlich überflüssig).
Doch wie gesagt, eigentlich darf dies vom Code nur einmal erfolgen...
Womit kann das evtl. zu tun haben ?
Hier der Code:
#include <stdlib.h>
#include <avr/io.h>
#include <string.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include <avr/pgmspace.h>
#include <util/delay.h> /* define CPU frequency in Mhz here if not
defined in Makefile */
#include "initlcd.h"
#include "uart.h"
#define UART_BAUD_RATE 9600
main(void) {
unsigned int c;
unsigned int TI[12]={0x11,0x03,0x1B,0x54,0x49,0xCC};
unsigned int
UI3[12]={0x11,0x04,0x1B,0x55,0x49,0x00,0x00,0x00,0x00,0x03,0xD1};
uart_init( UART_BAUD_SELECT(UART_BAUD_RATE,F_CPU) );
uart1_init( UART_BAUD_SELECT(UART_BAUD_RATE,F_CPU) );
initlcd();
_delay_ms(200);
sei();
while(1){
c = uart_getc();
if ( c & UART_NO_DATA ){
;
} else {
uart1_putc( (unsigned char)c );
}
}
return 0;
}
Vielleict ein genereller Fehler bei der Initialisierung des µc´s ???
Über Hilfe wäre ich sehr DANKBAR!!!