Forum: Mikrocontroller und Digitale Elektronik Pollin AVR Evulationsboard V2.01 ATmega32


von Alfons M. (alfonsmoeller)


Angehängte Dateien:

Lesenswert?

Hallo! Ich hab mal ein kleines Programm für ein Pollin Evaluationsboard 
Ver. 2.01 geschrieben. Prozessor ATmega32.
LED1 sollte im Sekundentakt toggeln.
LED2 blinkt abhängig von der Prozessorlast.
Wird Taste 3 gedrückt sollte die Hupe etwas von sich geben.
Mit einer Terminalemulation auf dem PC. COM Schnittstelle Pin 2 mit 2,
Pin 3 mit 3 und Pin 5 mit 5 verbinden. 192000,N,8 einstellen.
Dann sollte man auf dem Bildschirm die Adresse 0-999 und dessen Inhalte
sehen.

Parameter 909 wird nach Reset auf 10 gestellt, bedeutet der Prozessor
durchläuft 200*10 eine Schleife. Setz man Parameter 909 auf 20 wird die 
Schleife 4000 mal durchlaufen.

P912 ist der Sekundenzeiger
P913 ist der Minutenzeiger
P914 ist der Minutenzeiger

Hat jemand Lust, dies mal auszuprobieren?
Alfons

von der Ausprobierer (Gast)


Lesenswert?

Ich habs ausprobiert und jetzt?

von Alfons M. (alfonsmoeller)


Lesenswert?

Verat bitte niemanden das es nicht funktioniert hat.

von Oliver J. (skriptkiddy)


Lesenswert?

Also möchtest du dass man dir anhand von einem HEX-File sagt, was an 
deinem Programm nicht funktioniert?

von Alfons M. (alfonsmoeller)


Lesenswert?

Also möchtest du dass man dir anhand von einem HEX-File sagt, was an
deinem Programm nicht funktioniert?

Nein! Ganz bestimmt nicht. Aber evt. hat ja jemand die Möglichkeit das
HEX-File in sein Board zu laden und zu sagen ob das so funktioniert hat
oder nicht.
Alfons.

von Oliver J. (skriptkiddy)


Lesenswert?

Wenn es bei dir funktioniert, sehe ich keinen Grund warum es bei anderen 
identischen Board-µC-Kombinationen nicht funktionieren sollte.

Oder funktioniert es bei dir nicht und du willst nur wissen, ob es an 
deiner Hardware liegt und brauchst desshalb einen Referenztest auf 
identischer Hardware?

Oder welches andere Zeil verfolgst du damit?

von Alfons M. (alfonsmoeller)


Lesenswert?

Das Programm ist kommplett in Assembler geschrieben. Mir ist völlig klar
das auf identischer Hardware die gleiche Software auch gleich 
funktioniert.
Das Problem ist nur wie kommt die Software auf den Prozessor, und wo 
gibt es Schwierigkeiten. Hier streubt sich schon alles dagegen.

Ziel des Programms ist Adresse 0x1000 im 10ms Takt anzuspringen.
Die Adresse 0x1002 alle 100ms und 0x1004 alle 1000ms. Die Adresse
0x1006 wird zyklisch das heißt für die restliche Prozessorzeit, je nach 
Prozessorlast 100 - 1000 mal pro Sekunde angesprungen. Alle zu 
bearbeitende Parameter können von P000 - P899 bearbeitet werden.
z.B. VT220 Emulation oder Hyperterminal.

m.f.G.
Alfons!

von Oliver J. (skriptkiddy)


Lesenswert?

Ich fragte eigentlich nach dem Grund, warum jemand die Software auf sein 
Board laden sollte.

Was bezweckst du damit?

von Andreas M. (elektronenbremser)


Lesenswert?

das ist bestimmt ein Virus der das Board tötet :-)

von Alfons M. (alfonsmoeller)


Lesenswert?

Ich bin verwundert, kann ich schon die Fassungen auf dem Board per Virus 
zerstören. Für was hält man mich hier!

von Karl H. (kbuchegg)


Lesenswert?

Alfons Möller schrieb:

> Das Problem ist nur wie kommt die Software auf den Prozessor, und wo
> gibt es Schwierigkeiten. Hier streubt sich schon alles dagegen.

Hmm.
Soll das heißen, du hast Schwierigkeiten das HEX-File auf den AVR zu 
laden?
Oder wie soll man das interpretieren?

von Hubert G. (hubertg)


Lesenswert?

Kein blinken, kein hupen, auf der seriellen undefinierbare Zeichen.
Ist das für 1MHz Takt, Baud ist sicher 19200 gemeint.

von Alfons M. (alfonsmoeller)


Lesenswert?

Das hatte ich mir leichter vorgestellt.
Bei mir funktioniert alles. Aber ich hatte gedacht das mal Kollegen
eben mal probieren können ob bei Ihnen auch alles so glatt läuft wie
bei mir. Mein Gedanke war das mal eben auszuprobieren, der eine läd über
parallel Kabel der andere seriell oder über USB . War wohl ein
Wunschtraum von mir. Vor allendingen würde mich interessieren ob alles
auch mit allen Terminal funktioniert.
Aber wie gesagt, es war wohl nur ein Wunschtraum von mir.
Alfons!

von Alfons M. (alfonsmoeller)


Lesenswert?

Entschuldigung das hatte ich vergessen. Grundtakt ist 16MHZ
Alfons!

von Hubert G. (hubertg)


Lesenswert?

Kommando zurück, ausser der Seriellen funktioniert es. Ich hatte die 
Brücken vergessen.

von Hubert G. (hubertg)


Lesenswert?

Serielle geht auch soweit, das geschriebene ist allerdings nicht richtig 
lesbar, formatierung?

von Alfons M. (alfonsmoeller)


Lesenswert?

Danke für die Antwort!
Ist VT220 Emulation eingestellt ?
Oder einfach mal die "C" Taste drücken
Alfons!

von Hubert G. (hubertg)


Lesenswert?

1
4H45830›12;35H999›1;1H\›9;34H     ›?25l›10;34H45830›12;35H999›1;1H-›9;34H     ›?
2
25l›10;34H45830›12;35H999›1;1H/›9;34H     ›?25l›10;34H45830›12;35H999›1;1H\›9;34
3
H     ›?25l›10;34H45830›12;35H999›1;1H-›9;34H     ›?25l›10;34H45830›12;35H999›1;
4
1H/›9;34H     ›?25l›10;34H45830›12;35H999›1;1H\›9;34H     ›?25l›10;34H45830›12;3
5
5H999›1;1H-›9;34H     ›?25l›10;34H45830›12;35H999›1;1H/›9;34H     ›?25l›10;34H45
6
830›12;35H999›1;1H\›9;34H     ›?25l›10;34H45830›12;35H999›1;1H-›9;34H     ›?25l›
7
10;34H45830›12;35H999›1;1H/›9;34H     ›?25l›10;34H45830›12;35H999›1;1H\›9;34H
8
  ›?25l›10;34H45830›12;35H999›1;1H-›9;34H     ›?25l›10;34H45830›12;35H999›1;1H/›
9
9;34H     ›?25l›10;34H45830›12;35H999›1;1H\›9;34H     ›?25l›10;34H45830›12;35H99
10
9›1;1H-›9;34H     ›?25l›10;34H45830›12;35H999›1;1H/›9;34H     ›?25l›10;34H45830›
11
12;35H999›1;1H\›9;34H     ›?25l›10;34H45830›12;35H999›1;1H-›9;34H     ›?25l›10;3
12
4H45830›12;35H999›1;1H/›9;34H     ›?25l›10;34H45830›12;35H999›1;1H\›9;34H     ›?
13
25l›10;34H45830›12;35H999›1;1H-›9;34H     ›?25l›10;34H45830›12;35H999›1;1H/›9;34
14
H     ›?25l›10;34H45830›12;35H999›1;1H\›9;34H     ›?25l›10;34H45830›12;35H999›1;
15
1H-›9;34H     ›?25l›10;34H45830›12;35H999›1;1H/›9;34H     ›?25l›10;34H45830›12;3
16
5H999›1;1H\›9;34H     ›?25l›10;34H45830›12;35H999›1;1H-›9;34H     ›?25l›10;34H45
17
830›12;35H999›1;1H/›9;34H     ›?25l›10;34H45830›12;35H999›1;1H\›9;34H     ›?25l›
18
10;34H45830›12;35H999›1;1H-›9;34H     ›?25l›10;34H45830›12;35H999›1;1H/›9;34H
19
  ›?25l›10;34H45830›12;35H999›1;1H\›9;34H     ›?25l›10;34H45830›12;35H999›1;1H-›
20
9;34H     ›?25l›10;34H45830›12;35H999›1;1H/›9;34H     ›?25l›10;34H45830›12;35H9
so sieht es bei mir aus. Kann damit nichts anfangen.

von Alfons M. (alfonsmoeller)


Angehängte Dateien:

Lesenswert?

Ich möchte noch eben ein Bild vom Bildschirm anhängen.
Hier ist zum Beispiel der Sekundenzeiger zu sehen.
Alfons.
Antworte sofort weiter.

von Alfons M. (alfonsmoeller)


Lesenswert?

Hallo Hubert!
Für mich sieht schon mal alles gut aus. Was ist das für ein Terminal-
emultionsprogramm. Hab mich heute auch schon gewundert, bei VISTA gibts 
kein Hyperterminal mehr. Hab dann das gute alte PROCOM von 1994 
genommen.
das ist das Bild was ich vorhergeschickt habe. Will deine Nerven nicht
überstrapazieren. Ich denke wir machen heute erst mal Schluß. Vielen 
Dank für Deine Hilfe. Bis Später!
Alfons.

von Hubert G. (hubertg)


Lesenswert?

Ich habe es mit Hyperterminal und TeraTermPro probiert, immer das 
gleiche.

von Alfons M. (alfonsmoeller)


Lesenswert?

Danke Hubert!
Ich denke das ich das morgen alles auf VT100 umsetze uns ich würde mich 
freuen wenn wir das noch einmal austesten könnten.
Natürlich vorausgesetzt Du hast Lust dazu. Sonst später.
Danke Alfons!

von Oliver J. (skriptkiddy)


Lesenswert?

Also LEDs blinken. Summer geht. Nur Hyperterminal funktioniert nicht. Da 
hab ich den selben Salat wie Hubert. Mit Putty gehts aber. VT100 wäre 
echt nicht verkehrt, wenns im Hyperterminal laufen soll.

von Alfons M. (alfonsmoeller)


Lesenswert?

Habe heute versucht auf VT100 umzusteigen.
beim VT100
z.B. die 0x1b,"18;26H" Cursor auf Zeile 18 Spalte 26 zu positionieren
beim VT220
z.B. die 0x9b,"18;26H" Cursor auf Zeile 18 Spalte 26 zu positionieren
irgendwie will das nur beim VT220 funktionieren.
Ich laß jetzt erst mal alles auf VT220 - Emulation.
Alfons!

von Oliver J. (skriptkiddy)


Lesenswert?

Alfons Möller schrieb:
> Habe heute versucht auf VT100 umzusteigen.
> beim VT100
> z.B. die 0x1b,"18;26H" Cursor auf Zeile 18 Spalte 26 zu positionieren
> beim VT220
> z.B. die 0x9b,"18;26H" Cursor auf Zeile 18 Spalte 26 zu positionieren
> irgendwie will das nur beim VT220 funktionieren.
> Ich laß jetzt erst mal alles auf VT220 - Emulation.
> Alfons!

Du gibst aber schnell auf.

von Karl H. (kbuchegg)


Lesenswert?

Alfons Möller schrieb:

> Ich laß jetzt erst mal alles auf VT220 - Emulation.

Keine gute Idee.
VT100 können fast alle

von Alfons M. (alfonsmoeller)


Angehängte Dateien:

Lesenswert?

Ich möchte erst mal das Grundziel erreichen und mich nicht verzettel.
Zuerst werden ich weiter daran arbeiten um folgendes Ziel zu erreichen:
Ich erstelle eine Hex-Datei das einen Programmaufruf alle 10ms, 100ms 
und
alle 1000ms erzeugt. Für den Rest der Zeit, wo allso nicht an einem
Interrupt gearbeitet wird, erfolgt ein zyklischer Programmaufruf.
Das kann je nach Programmlast von ca.100 mal pro Sekunde bis zu 1500 mal
sein.

Das Benutzerprogramm könnte so aussehen:

.CSEG
.ORG    0x1000
user_init:
 nop
jmp initialisieren
.CSEG
.ORG    0x1004
jede_hsekunde:
 nop
jmp alle_10ms
.CSEG
.ORG    0x1008
jede_zsekunde:
 nop
jmp alle_100ms
.ORG    0x100c
jede_sekunde:
 nop
jmp alle_1000ms
.ORG    0x1010
jeder_zyklus:
 nop
jmp alle_zyklen
initialisieren:
 incm var300
 ret
alle_10ms:
 incm var301
 ret
alle_100ms:
 incm var302
 ret
alle_1000ms:
 incm var303
 ret
alle_zyklen:
 incm var304
 ret

Das Programm läd man wie folgt:
Das "TestPollinEVBoard.hex" wird ganznormal mit vorherigem Löschen
geladen.
Das "User.hex" läd man jetzt darüber her. Wichtig das Häkchen
"Erease Device before Flashing" löschen.
Der "nop" Befehl überschreibt das "ret" vom "TestPollinEVBoard.hex" und
der folgende jmp springt zu den Benutzerroutinen.

Mit dem kleinen Bildschirmprogramm habe ich die Möglichkeit die
Variablen von 0-999 zu beobachten und zu verändern.

Ich habe mal einen bisherigen Bildschirmauschsschnitt angehängt.

Bevor ich den endgültigen Stand veröffentliche sind sicherlich noch
einige Tests notwendig.
Bis später, Alfons!

von Oliver J. (skriptkiddy)


Lesenswert?

mit dieser VT-100-Escape-Sequenz kommste an eine bestimmte 
Bildschirmposition (x,y):

"\033[y;xf"

referenz:
http://www-user.tu-chemnitz.de/~heha/hs_freeware/terminal/terminal.htm

von Alfons M. (alfonsmoeller)


Angehängte Dateien:

Lesenswert?

Danke für den Tip!
Richtige Steuersequenz heißt: 0x1b,"[18;26H" um den Cursor auf
Zeile 18 Spalte 26 zu positionieren.
Wie ich die eckige Klammer gesehen habe war mir alles klar.
Wofür die 33 gut sein soll ist mir unklar. Aber wir haben
ja Mut zur Lücke.

Habe noch mal den letzten Stand Hex-Datei angefügt.
Mich würde interessieren ob das jetzt bei allen Interessierten
auch funktioniert.

Danke!
Alfons

von Karl H. (kbuchegg)


Lesenswert?

Alfons Möller schrieb:

> Wofür die 33 gut sein soll ist mir unklar.

:-)
Da steht nicht 33.
Da steht \033
und das ist die C-Character-Oktalschreibweise für Hex 0x1B oder dezimal 
27 oder landläufig "Das Escape-Zeichen"

von Hubert G. (hubertg)


Lesenswert?

Die Bildschirmanzeige ist jetzt OK.
Die oberste Zeile ist mir nicht klar, sollte das die Uhrzeit sein? Was 
zeigt der rechte Teil an.

von Alfons M. (alfonsmoeller)


Lesenswert?

Hallo Hubert G.
ja das soll die Uhrzeit sein. Sekundenzeiger ist Adresse 912
Minutenzeiger Adresse 913 und Stundenzeiger ist 914.
Die Adressen 901-904 zeigen die Eingangsbytes a-d
und die Adressen 905-908 zeigen die Ausgangsbytes a-d
aber dazu später mehr.
Kannst Du mit der Einstellung der Parameter was anfangen?
z.B. P001 auf 1 stellen P2 auf 2 stellen und z.B. P912 Sekunden-
zeiger auf Sekunde, P913 auf Minute und P914 auf die Stunde.
Erklärt sich das von selbst?
Für später habe ich das so gedacht das die Parameter 0-899 dem
Benutzer zur Verfügung stehen, die Parameter 900-999 vom System
benutzt werden.
Aber da gibts dann auch eine bessere Beschreibung dazu.

Mir war aber der Zugriff für alle per Terminalemulation
erst mal wichtig, und es hat sich ja schon beim ersten Test
ein Schwierigkeit herausgestellt.

Alfons!

von Alfons M. (alfonsmoeller)


Lesenswert?

Hallo Hubert G.
> Was zeigt der rechte Teil an .
Der rechte Teil zeigt die Anzahl der Programmzyklen pro Sekunde an.
Spiel mal mit dem Parameter 909 etwas herum. Die 10 bedeutet
Prozesser läuft eine Schleife 200 * 10 mal im Kreis. Wird der Wert
vergrößert läufter er öfter im Kreis und die Anzahl der Programm-
zyklen verkleinert sich. Macht keinen Sinn, dient nur zur
Demonstration. In Wirklichkeit soll der Prozessor ja was sinnvolles
tun.
m.f.G. Alfons!

von Hubert G. (hubertg)


Lesenswert?

Kann man die Uhrzeit auch stellen?
Bei mir steht jetzt 19:74:93 00914
Der Sekundenüberlauf ist von 31 auf 72

von Alfons M. (alfonsmoeller)


Lesenswert?

Hallo Hubert G.
Hast Du vielleicht meine Antwort davor
übersehen?
Alfons

von Hubert G. (hubertg)


Lesenswert?

Ich habe mir das wohl nicht richtig durchgelesen, funktioniert bestens.

von Alfons M. (alfonsmoeller)


Angehängte Dateien:

Lesenswert?

Habe jetzt mal ein Projektverzeichnis eingepackt mit meiner Version
von heute.
Vor der Verwendung dieser Software bitte ich die liesmich.txt zu lesen
Eine Weitergabe dieser Sofware ist erlaubt, vorausgesetzt die Datei
"liesmich.txt" wurde nicht entfernt.
Zuerst bitte EVBoardV100712.hex laden mit vorherigem
"Erease Device before Flashing" angeklickt.
Dann Geruest.hex hinterherladen, dabei darauf achten das
"Erease Device before Flashing" abgewählt ist.

Das Verzeichnis ab1000Hex beinhaltet ein Beispielprojekt als Geruest.
Man braucht ein Verbindungskabel für die COM-Schnittstelle und ein
Terminal - Emulationsprogramm z.B. VT100.

Viel Spaß beim austesten.
Alfons

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.