Hallo zusammen,
ich muss ein älteres, von mir geschriebenes Programm (Bascom Basic) nach C portieren.
Dabei habe ich Probleme beim Print-Befehl. Sprich: Ich kriege die Routinen dahinter in C nicht nachgebaut - es funktioniert nicht.
Hier mal die Codeschnipsel:
Der Ursprüngliche Bascom-Code:
Diesen Abschnitt gilt es in C nachzubauen. Momentan habe ich das hier:Code:For I = 1 To 42 Print Sendefeld(i); ' das Semikolon verhindert den Zeilenbruch, sonst verheddert sich der Empfänger Waitms 2 Next
Der Code wird auf ein und demselben Controller ausgeführt. Doch bei der C-Version stellt sich der Empfänger quer.Code:void Displayrefresh(void) { for(uint8_t i = 0; i<=41; i++) { while (!(UCSRA & (1<<UDRE))) // Wait until Buffer is empty - ready to send. { } UDR = Sendefeld[i]; _delay_ms(2); } }
Hintergrund: Der Empfänger (Megaempfängt ein 42 Stellen grosses Array (unsigned 8bit integer), welches er dann verarbeitet und auf einem Display (LED-Matrix) repräsentiert. Bei der Bascom-Version zeigt er das Array korrekt an. Bei der C-Version kommt zeigt er gar nichts an. Den Empfänger kann ich leider nicht ändern, ich muss die C-Version dazu bringen, sich wie die Bascom-Software zu verhalten...
Hat jemand Ideen?
Gruss
Mario
Lesezeichen