Hallo, so ich hätte ein kleines Problem alsoo ich habe mir einen zähler programmiert welcher mitzählt wie oft ich eine Taste Drücke der funktioniert auch wunderbar. Aber ich kann nur bis 9 Zählen dann werden Zeichen angezeigt, was aber logisch ist den 30+9 = ASCII 9. Nun würde ich gerne wissen wie ich mehr als bis 9 Zählen kann?? Verwende den PIC16f628A und programmiere in Assembler Bitte um Hilfe
Hallo Mairo, mit einer Stelle kannst Du nur bis 9 Zählen - Du brauchst eine weitere Variable (Zehner-Stelle). Sobald die Einer-Stelle "9" erreicht hat, wird beim nächsten Tastendruck die Einer-Stelle auf "0" gesetzt und die Zehner-Stelle um eins erhöht. Du kannst auch binär zählen und den Wert für die Anzeige entsprechend umwandeln. Hier gibt es ein paar Beispiele für die Umwandlung (4 bis 32 bit): http://www.piclist.com/techref/microchip/math/radix/index.htm z.B: mit 8-Bit ist der Zählbereich 0...255. Du brachst dafür: Binary to ASCII - '8bit to ASCII Decimal 3 digits' Gruß John
Mario Horvat schrieb: > Aber ich kann nur bis 9 Zählen dann werden Zeichen angezeigt, was aber > logisch ist den 30+9 = ASCII 9. > > Nun würde ich gerne wissen wie ich mehr als bis 9 Zählen kann?? Servus, ich empfehle dir die sog. Modulo Funktion. Die Modulofunktion gibt den Rest der Division heraus. Hier Beispiel in C 12/10 = 1 //normale Division, bei ganzen Zahlen wird die Nachkommastelle ignroiert. 12%10 = 2 // dies ist die Modulofunktion. 12/10 ergibt 1 mit Rest 2.
Hui sorry, ich hab gerade bemerkt, dass das was ich oben geschrieben hab nicht so ganz das war was du gesucht hast ...
Ich hab dir hier mal einen Auszug aus einer Trinär-Uhr. Trinär ist egal - wichtig ist nur, die Sekunde erhöht sich und je nachdem erhöht sich die Minute und Stunde ... kannst du umschreiben für dich ...
1 | sekunde++; |
2 | if(sekunde==60){ |
3 | sekunde=0; |
4 | minute++; |
5 | }
|
6 | if(minute==60){ |
7 | minute=0; |
8 | stunde++; |
9 | }
|
10 | if(stunde==24){ |
11 | stunde=0; |
12 | }
|
Lehrmann Michael schrieb: > ich empfehle dir die sog. Modulo Funktion. > Hier Beispiel in C Tolle Empfehlung... Mario Horvat schrieb: > programmiere in Assembler Mario Horvat schrieb: > Nun würde ich gerne wissen wie ich mehr als bis 9 Zählen kann?? Nimm wie schon gesagt ein paar Bytes her und zähle dort wie im Zehnersystem üblich: z.B. Tausender Hunderter Zehner Einer Erst wird bei einem Tastendruck der Einer um 1 hochgezählt. Wenn dabei 10 herauskommen, wird der Einer auf 0 gesetzt und der Zehner um eins hochgezählt. Wenn dabei 10 herauskommen, wird der Zehner auf 0 gesetzt und der 100er hochgezählt. Usw. Usf...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.