Pollin AVR Evulationsboard V2.01 ATmega32

#1774904
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
Angehängte Dateien:
#1775007
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?
#1775031
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!
#1775077
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!
#1775130
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.
#1775158
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.
#1776185
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!
#1776508
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.
#1776577
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!
Angehängte Dateien:
#1776817
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
Angehängte Dateien:
#1776985
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!
#1777010
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!
#1778861
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
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren