-
-
Moderator
Robotik Einstein
Was meinst du mit beliebig erhöhen?
Das Arbeitsregister im PIC ist 8-bit groß d.h. du kannst dort Zahlen zwischen 0 und 255 drin speichern. Wenn die Zahl jetzt 256 beträgt ist das eine 9 Bit Zahl und passt nicht mehr ins Arbeitsregister.
-
Neuer Benutzer
Öfters hier
Mit beliebig erhöhen mein ich wenn ich die zahl 256 ins Arbeitsregister lade dann bekomm ich auf meinem oszi eine andere Frequenz als wenn ich 500 eingebe das ist das was mich stutzig macht. Wie könnte ich das Programm anders schreiben damit ich eine Blinkfrequenz von 1Hz oder 2 Hz erreiche hast du da vllt eine Idee? mfg Gremlin
-
Moderator
Robotik Einstein
Du bekommst bei 256 eine andere Blinkfrequenz als eigentlich gedacht, weil 256 eine 9-bit Zahl ist und das Arbeitsregister nur 8 Bit aufnehmen kann.
256 ist 1 0000 0000 und da nur 8 Bit ins Register reinpassen schreibt er im Endeffekt 0000 0000 und die 1 am Anfang wird abgeschnitten.
500 ist 1 1111 0100 und dann schreibt er ins Arbeitsregister eine 1111 0100. Das sollte das ganze Problem sein. Wenn du mit 8-Bit nicht hinkommst musst du die Zahl halt in einen Low und einen High Teil aufteilen.
Zum Beispiel die 500 wieder. 500 ist ja 1 1111 0100. Dann schreibst du in das Register was für den Low Teil der Zahl steht 1111 0100 und in das Register was für den High Teil steht 0000 0001. Und beim Zählen hast du dann auch jeweils ein Low und High Register. Beim High Register wird der Wert um 1 erhöht wenn im Low Register 1111 1111 steht. So kannst du dann auch mit 16-Bit Zahlen rechnen.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen