Gast
#76570
Hallo Cracks
Ich möchte Daten vom PC an den uC schicken und zwar möchte ich diese
Daten in einem Array ablegen:
Prinzip:
unsigned char Feld[64], counter
UART ISR
{
Feld[counter] = UDR
counter++
}
Main
{
for (;;)
{
if (counter == 64)
{
counter = 0;
EEPROM() //schreibt die 64 Byte ins EEPROM!
}
}
}
Mein Problem:
Die if - anweisung trifft niemals zu! Denn wie ich herausgefunden habe,
zählt der counter bis 20 und danach beginnt er wieder von vorne!!!
Sobald ich das Array nicht in der ISR beschreibe, zählt mein Counter
wieder so wie er muss! Jedoch empfange ich die Daten nicht richtig!
Meine Frage:
Wie macht man das richtig (üblicherweise)?
Muss ich da mit Pointer arbeiten?`
Brauch meine Array - füllung zu lange?
Oder wo liegt der Fehler?
Vielen Dank
Fabian