Zitat Zitat von Che Guevara Beitrag anzeigen
Code:
uint8_t empf[8];
...
    empf[1] = 120;
    empf[2] = 210;
    empf[3] = 210;
    empf[4] = 210;
    empf[5] = 210;
    empf[6] = 210;
    empf[7] = 210;
    empf[8] = 210;
Bei einem Array der Größe 8 sind die erlaubten Indizes 0-7. Du machst diesen Fehler bei allen Arrayzugriffen. Sollte das Programm wie erwartet laufen, dann ist das purer Zufall.


Zitat Zitat von Che Guevara Beitrag anzeigen
In Bascom gibt es einen Signed-Shift (also shiften, nur mit Beachtung des Vorzeichens). Gibts das in C auch? Wie man shiftet weiß ich (>> <<), aber wird dabei das Vorzeichen beachtet oder kommt dann Müll raus?
Links-Shift ist kein Problem. Rechts-Shift von Signed-Typen ist Implementation-Defined.