hallo ich benötige mal eine hilfestellung um die angehängte datei zu verstehen, da ich mich mit assembler nicht so gut auskenne. würde mich freuen wenn es jemand von euch mal ins deutsche übersetzt damit ich weiß was dieses programm macht vielen dank gruß reene
:
Verschoben durch Moderator
^Gib mal den Hintergrung für dieses Programm an !
dieses programm soll vier antennen ein und ausschalten für eine funkpeiler
Reene H. schrieb: > hallo ich benötige mal eine hilfestellung um die angehängte datei zu > verstehen, da ich mich mit assembler nicht so gut auskenne. Das Programm ist wunderbar in Englisch dokumentiert, Assembler sollte da kein Hindernis sein. Oder willst du es als Erlebnisaufsatz haben? Warum überhaupt? Was bringt dir ein Assemblerprogramm, wenn du kein Assembler kannst?
Hallo, Wie es aussieht ist dieses Assembler-Programm für einen AT90S2313 geschrieben worden. Jedenfalls passt das ganz gut zu den PORT-Adressen. Also einfach mal mit AVR Studio simulieren. CPU-Takt scheint 1MHz zu sein. Steffen
würd gern wissen wie der microcontroller arbeitet bzw wissen was er genau macht
es ist ein programm für ein at90s1200a aber es soll auf ein attiny2313 gemacht werden
>würd gern wissen wie der microcontroller arbeitet bzw wissen was er >genau macht Dann lern Assembler. Troll.
Naja, dafür ist der Code selber sehr unverständlich geschrieben. Man dazu eine bessere Syntax schreiben, zb. Register einen Namen geben. Simuliere es einfach mal mit AVR Studio. Da erkennt man sehr gut was der µC macht. Reene H. schrieb: > würd gern wissen wie der microcontroller arbeitet bzw wissen was er > genau macht Grob gesagt: - erst initialisiert er die Ports - dann wartet er ein wenig - um daraufhin die 4 Antennenausgänge an den Ports in 4 Schleifen zu tongle'n (hin und her schalten)
Steffen H. schrieb: > um daraufhin die 4 Antennenausgänge an den Ports in 4 Schleifen zu > tongle'n (hin und her schalten) Wobei der Controller keinerlei Idee hat, dass es sich um eine Antennenumschaltung handelt; aus seiner Sicht könnten es genauso gut Leuchtdioden sein, die er da schaltet. Was dann tatsächlich passiert, wird also im Wesentlichen durch die externe Beschaltung festgelegt.
Du wirst es nicht gerne hören und ich sag's auch nicht gerne, aber ohne Kenntnisse über + + + kannst Du das Ganze vergessen. Für jemand der die beiden Prozessoren kennt, dürfte das Ganze zwischen Frühstück und Mittag zu erledigen sein. Wer häufig mit ähnlichen Prozessoren zutun hat, kennt zumindest zu Feierabend auch noch die Blödzeitung auswendig. Aber ohne …
Sollte eigentlich unverändert auf nem Tiny2313 laufen. Unterschiede gibts, soweit ich weiss, in den Interruptvektoren und in der EEPROM-Ansteuerung, beides brauchst du hier gar nicht. Es müsste sogar das Original-Hexfile auf dem 2313 laufen. Kannst es ja mal für den 2313 übersetzen.
So, hab es gerade mal simuliert auf einen tiny2313. An PORTB scheint ein R/2R Widerstandsnetzwerk zu hängen als DAC (digital-analog-converter) um eine analoge Spannung (Antenna Value) zu erhalten. Am PORTD PD4 wird dann nach der Einstellung der Analogspannung an PORTB ein 62,5 kHz Signal (SLOW) bzw. 71,428 kHz Signal (Normal) für 350µs erzeugt. Danach wird die nächste der insg. 4 Schleifen durchlaufen bis sich schließlich alles wiederholt. Am PORTD PD0 wird beim Start des Programms übrigens überprüft welcher Pegel dort vorliegt. Danach richtet sich das Programm im Folgendem, ob SLOW oder NORMAL Frequenz am Ausgang des PORT-PINs PD4 anliegt. Steffen
H.joachim Seifert schrieb: > Sollte eigentlich unverändert auf nem Tiny2313 laufen. > Unterschiede gibts, soweit ich weiss, in den Interruptvektoren und in > der EEPROM-Ansteuerung, beides brauchst du hier gar nicht. Nein, nicht nur. Musste auch noch den STACK initialisieren. Sonst springt er beim ersten RET zum Reset zurück.
hallo vielen dank schonmal für die vielen antworten ich habe im anhang mal ein schaltplan gelegt vlt hilft der noch weiter
Steffen H. schrieb: > H.joachim Seifert schrieb: >> Sollte eigentlich unverändert auf nem Tiny2313 laufen. >> Unterschiede gibts, soweit ich weiss, in den Interruptvektoren und in >> der EEPROM-Ansteuerung, beides brauchst du hier gar nicht. > > Nein, nicht nur. Musste auch noch den STACK initialisieren. Sonst > springt er beim ersten RET zum Reset zurück. Nein. Netter (und sinnvoller) Weise steht der SP beim Tiny2313 auf ramend nach reset und nicht auf Null wie beim 90S2313 :-)
Okay, kein R/2R als DAC. Dann gleich 8bit raus auf den DUB-D. Hab dir mal das ASM-File und das zugehörige .hex mit angehangen. Ist für einen tiny2313. Steffen
Reene H. schrieb: > ich habe im anhang mal ein schaltplan gelegt nur leider im dämlichsten Format was es auf Erden gibt... PDF oder PNG bitte!
H.joachim Seifert schrieb: > Nein. Netter (und sinnvoller) Weise steht der SP beim Tiny2313 auf > ramend nach reset und nicht auf Null wie beim 90S2313 :-) Hab es jetzt im Datasheet noch nicht nachgelesen, aber in der Simulation ging es nicht. Kann aber auf keinen Fall schaden. (bei der Codegröße :-) / use: 210 byte) EDIT: This Stack space in the data SRAM must be defined by the program before any subroutine calls are executed or interrupts are enabled. The Stack Pointer must be set to point above 0x60. Steffen
Schadet nicht, aber wenns im Datenblatt steht, sollte es auch so sein....
Ich werd verrückt, da haben wir beide 2 verschiedene Datasheets. Muss auch sagen, meins ist auch schon in die Jahre gekommen. Aber warum sollte es jetzt bei dem tiny2313 anders sein? Kommt wahrscheinlich auch auf die Revision des µC's an. Steffen
Stimmt, in meinem alten Datenblatt (Archiv auf der Netzwerkplatte) steht es auch mit 0, Hammer. Müsste man direkt mal austesten, was das Silizium so sagt :-)
Silizium sagt: 0xdf .include "tn2313def.inc" ldi r16, $ff out DDRB, r16 in r16, spl out PORTB, r16 loop: rjmp loop Und der alte 90S2313 liefert tatsächlich 0x00.
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.