Datum: 24.03.2008 23:22
1. Kann das Zeroflag nach erfolgtem Branch weiterverwendet werden. Ich möchte damit Sprünge kaskadieren, die außerhalb der Reichweite für rel. jumps liegen. Bsp: tst a breq p21 ... tst a p21: breq p22 ... p22: 2. Das Manual ist für mich nicht eindeutig. Kann ich ein Output-Bit über ein in rx, pinb einlesen? Bsp: ldi r16,0x55 out portb, r16 nop in r17, pinb Ist r17 dann 0x55? Danke.
Datum: 24.03.2008 23:29
2. nein, in r17, PORTB ist dann 0x55 in r17, PINB ist exakt das was an Pegeln an den Eingängen anliegt. 1.) Ja kannst du kaskadieren, mache ich auch so. Allerdings ist es quasi ein "mieser Trick" weil es einen Source weniger gut wartbar macht. Dh. das was in einem Source steht sollte normalerweise explizit und aussagekräfting sein. Kaskadierst du solche Sprünge dann besteht die Gafahr das wenn du inerhalb dieser Kette was veränderst damit auch an andere Stelle das Verhalten unabsichtlich veränderst. Ist also ein Trick den man nur anwenden sollte wenn es auf jedes Byte FLASH Speicher ankommt. Gruß Hagen
Datum: 24.03.2008 23:34
vinculum wrote: > 1. Kann das Zeroflag nach erfolgtem Branch weiterverwendet werden. Ich > möchte damit Sprünge kaskadieren, die außerhalb der Reichweite für rel. > jumps liegen. Ja, kann man. Wieso auch nicht, der breq-Befehl ändert den Inhalt des SREG ja nicht... > 2. Das Manual ist für mich nicht eindeutig. Kann ich ein Output-Bit über > ein in rx, pinb einlesen? Ja, kannst Du. > Bsp: > ldi r16,0x55 > out portb, r16 > nop > in r17, pinb > > Ist r17 dann 0x55? Nicht unbedingt, denn eine externe Komponente könnte die Port-Pins mit mehr Kraft (sprich: Strom) auf GND ziehen. Aber prinzipiell geht das. Nur - wozu? :) Gruss, Torsten
Datum: 24.03.2008 23:49
Vielen Dank erstmal. <Nur - wozu?> Ein Software-Zähler steuert die Output-Pins 0-3 zyklisch an. Auf 4-7 liegen Inputs. Ich spare mir dann das Halten des Zählerstandes in einer Variablen. Beim asynchronen Einlesen sind input und Zählerstand gleich in einem byte vorhanden. So ähnlich wie eine Tastaturmatrix.
Datum: 25.03.2008 08:21
Hallo, wenn es lesbarer bleiben soll: Bsp: tst a brne p21 rjmp p22 p21: ... tst a brne p21a rjmp p22 p21a: ... p22: Gruß aus Berlin Michael
Antwort schreiben
Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
- Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
- Aussagekräftigen Betreff wählen
- Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
- Groß- und Kleinschreibung verwenden
- Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
- JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
- Schaltpläne, Screenshots usw. als PNG oder GIF anhängen
Formatierung (mehr Informationen...)
- [c]C-Code[/c]
- [avrasm]AVR-Assembler-Code[/avrasm]
- [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
- [math]Formel in LaTeX-Syntax[/math]
- [[Titel]] - Link zu Artikel