Gast
#2712560
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
ich möchte gerne diesen Code in Assembler übersetzen kann mir vlt einer helfen?
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
|
Anzeige
|
C----> Assembler
Gast
#2712560
ich möchte gerne diesen Code in Assembler übersetzen kann mir vlt einer helfen?
Gast
#2712572
Hi >ich möchte gerne diesen Code in Assembler übersetzen kann mir vlt einer >helfen? Dann solltest du erst mal überprüfen, ob cbi/sbi für die entsprechenden Register deines Controllers anwendbar sind. Alternativ kann man Makros benutzen: http://www.atmel.com/Images/doc2550.pdf http://www.atmel.com/Images/AVR001.zip MfG Spess Wenn du aus den "|=" Operatoren jeweils einen direkt Zuweisungsoperator
("=") machst, dann, so behaupte ich einfach mal, dürfte der entstehende
C Code ziemlich perfekt sein. Das einzige Optimierungspotential das ich
hier sehe, ist es, den Toggle mittels "PINB" Register durchzuführen. Das
geht aber nur bei "neueren" Controllern und erspart auch nur eine
Einleseoperation.
Wieso nimmst du nicht die während der Kompilierung entstehende *.lss
Datei als Vorlage für dein Assembler-Programm?
Gast
#2712588
>; if (TCNT1 >= 49999) ??????????? wie schreibt man sowas in Assembler
Ist eine Idee länger:
MfG Spess
Gast
#2712589
>; if (TCNT1 >= 49999) ??????????? wie schreibt man sowas in Assembler
Man nimmt einen Compiler, der kann es.
Oder man macht einen simplen Größenvergleich.
Gast
#2712592
Hi Mal > breq .... >oder > brne .... durch brcc ... oder brcs ... ersetzen. MfG Spess Azubi schrieb: > ich möchte gerne diesen Code in Assembler übersetzen kann mir vlt einer > helfen? Ja, der C-Compiler. Schau dir einfach den vom Compiler generierte Code an. Der ist schon mal gar nicht so schlecht. Evtl. stellst du fest, dass du an der einen oder anderen Stelle etwas geschickter als der Compiler gewesen wärst. Dann kannst du das ja noch ändern.
Gast
#2712675
danke für die hilfe DDRB |= (1 << 0); // Set LED as output sbi DDRB, PB1 Hm, einmal DDRB.0, dann DDRB.1 ? PORTB ^= (1 << 0); // Toggle the LED sbi PORTB, PBI auch nicht gerade gleichwertig.... Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|