Forum: Mikrocontroller und Digitale Elektronik benötige hilfe um die angehängte datei zu verstehen


von Reene H. (reene)


Angehängte Dateien:

Lesenswert?

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
von Joe (Gast)


Lesenswert?

^Gib mal den Hintergrung für dieses Programm an !

von Reene H. (reene)


Lesenswert?

dieses programm soll vier antennen ein und ausschalten für eine 
funkpeiler

von Vn N. (wefwef_s)


Lesenswert?

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?

von Steffen H. (avrsteffen)


Lesenswert?

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

von Reene H. (reene)


Lesenswert?

würd gern wissen wie der microcontroller arbeitet bzw wissen was er 
genau macht

von Reene H. (reene)


Lesenswert?

es ist ein programm für ein at90s1200a aber es soll auf ein attiny2313 
gemacht werden

von holger (Gast)


Lesenswert?

>würd gern wissen wie der microcontroller arbeitet bzw wissen was er
>genau macht

Dann lern Assembler. Troll.

von Steffen H. (avrsteffen)


Lesenswert?

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)

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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.

von amateur (Gast)


Lesenswert?

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 …

von H.Joachim S. (crazyhorse)


Lesenswert?

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.

von Steffen H. (avrsteffen)


Lesenswert?

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

von Steffen H. (avrsteffen)


Lesenswert?

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.

von Reene H. (reene)


Angehängte Dateien:

Lesenswert?

hallo
vielen dank schonmal für die vielen antworten
ich habe im anhang mal ein schaltplan gelegt vlt hilft der noch weiter

von Eumel (Gast)


Lesenswert?

Schaltplan im Word Dokument.
LOL

von H.Joachim S. (crazyhorse)


Lesenswert?

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 :-)

von H.Joachim S. (crazyhorse)


Lesenswert?

werden sich nicht viele anschauen :-)

von Steffen H. (avrsteffen)


Angehängte Dateien:

Lesenswert?

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

von troll (Gast)


Lesenswert?

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!

von Steffen H. (avrsteffen)


Lesenswert?

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

von H.Joachim S. (crazyhorse)


Angehängte Dateien:

Lesenswert?

Schadet nicht, aber wenns im Datenblatt steht, sollte es auch so 
sein....

von Steffen H. (avrsteffen)


Lesenswert?

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

von H.Joachim S. (crazyhorse)


Angehängte Dateien:

Lesenswert?

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 :-)

von H.Joachim S. (crazyhorse)


Lesenswert?

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
Noch kein Account? Hier anmelden.