Forum: Mikrocontroller und Digitale Elektronik Keil µVision3 - hex Files nicht verwendbar für Atmel Flip


von ragingbull (Gast)


Lesenswert?

Hi

ich hab folgendes Problem.

Ich habe dieses Board vor mir

http://www.stud.fh-hannover.de/~kuhs/537/mexs.htm

Und hab mir ein Programm im Keil geschrieben.

Das File wird als .a51 abgespeichert. Zusätzlich wird mir ein HEX - 80 
File erzeugt.

Will ich das File via Flip laden sagt mir Flip. Couldnot open File.

Was mache ich falsch?

Danke

von scriptkiddy (Gast)


Lesenswert?

Hab ich in den Release-Notes gefunden:

KNOWN BUGS AND LIMITATIONS
--------------------------
- batchisp HEX files pathnames should contain neither spaces, nor 
accentuated
  characters.

Hast du vllt. Leerzeichen oder Umlaute im Pfad zum hex-file?

von ragingbull (Gast)


Lesenswert?

Hi.

Ja die hatte ich.

Jetzt hab ich das a51 File direkt auf C: gelegt und schon geht :)

Vielen Dank.

Daran hab ich nicht gedacht.

Wo hast du den Bug-Report gefunden?

von Klaus X. (blacky27)


Lesenswert?

Ich hatte das gleiche Problem, aber jetzt gelöst.
Vielen Dank!!!
Aber........
Das Programm habe ich nun mit FLIP übertragen, aber kann es nicht 
ausführen.
Ich habe das USB-Flashboard von "elektor".
http://www.elektor.de/products/kits-modules/kits/070125-71-usb-flash-board.271292.lynkx
Wie gesagt, das Programm habe ich übertragen, ohne Fehler.
Ich halte mich dann genau an die Anweisungen.
Nachdem ich RUN gedrückt habe wird das Programm übertragen.
Jumper 2 wieder in die RUN-Stellung bringen und RESET drücken (S1).
Das Programm sollte nun laufen. Es handelt sich um ein ganz einfaches 
Programm: Eine LED soll blinken.
Es tut sich aber nix.
Muss ich außer den angesprochenen Sachen noch irgendwas beachten?

MfG
Blacky27

von Matthias K. (matthiask)


Lesenswert?

Das kann tausend Ursachen haben, die wahrscheinlich nichts mit Flip zu 
tun haben. Zeig uns mal Dein Programm und auch die Projekt- und 
Linkereinstellungen. Läuft es im Simulator?

von Klaus X. (blacky27)


Lesenswert?

Das Programm sieht folgendermaßen aus. Ganz einfach, da wir noch am 
Anfang stehen. Es soll nur eine LED im sekundentakt blinken.
Die HEX-Datei wird auch erzeugt (0 errors, 0 warnings).
Da ich noch in den Kinderschuhen stecke.....
Was soll ich denn für die Projekt- und Linkereinstellungen posten?
Simulator???? Wir haben das Programm nur im Debugger-Modus laufen 
lassen.


counter    equ R7
LED    equ P0.0
;---------------------------
code_s    segment code
      cseg at 0000h
      ljmp main

      org 000Bh
      ljmp Timer0

      org 0100h
      rseg code_s
;----------------------------
main:    mov TMOD,#1    ; 16 Bit Modus
      mov TH0,#0x3C
      mov TH0,#0xB0
      setb ET0    ; Freigabe Timer0
      setb EA      ; Allg. Int Freigabe
      setb TR0    ; Timer starten
      mov counter,#20
;---------------------------
Loop:    nop
      nop
      sjmp loop    ; Leerlaufprozess
;---------------------------
Timer0:    clr TR0
      mov TH0,#0x3C
      mov TL0,#0xB0
      setb TR0    ; Timer starten

      djnz Counter,Fertig
      mov counter,#20
      cpl LED      ; blinken

Fertig:    reti      ; fertig
;----------------------------
end

von Klaus X. (blacky27)


Lesenswert?

Siehe da.... einen Fehler habe ich schon gefunden.
Zeile 16 muss heißen "mov TL0,#0xB0"
Ich hab' das Programm mal im Debugger laufen lassen.
Der Timer zählt hoch, aber bei Port 0.0 tut sich nix.
Ich habe dazu mal bei KEIL die Fenster Timer0 und Port0 aufgerufen.
Da kann man ja schön verfolgen wei der Timer zählt.
Nach Ablauf der Zeit verzweigt das Programm auch nach Timer0, setzt den 
Timer wieder auf den Startwert und startet ihn erneut. Dann sollte aber 
auch noch die LED leuchten, bzw. nicht leuchten. Da tut sich nix und 
meine Kentnisse sind da auch am Ende.
Ich hoffe mir kann da jemand helfen!!!

MfG
Blacky27

von Klaus X. (blacky27)


Lesenswert?

Ich habe mich jetzt etwas in das Programm eingearbeitet.
Also wenn ich im Debugger-Modus auf RUN klicke funktioniert das 
Programm.
Port0.0 blinkt, so wie es sein soll.
Der Timer muss ja auch erst 20x durchlaufen werden. >> djnz 
Counter,Fertig <<
Je länger man mit dem Programm arbeitet, desto mehr kapiert man, gg. 
Trotzdem blinkt bei meinem Board noch nix.
Irgendwas hängt dann bei der Übertragung auf mein Board, bzw. bei der 
Ausführung. Hoffentlich habe ich nix falsch eingelötet. Das wird sonst 
ne Riesenfehlersuche. Keine Lust!!!

MfG
Blacky27

von Ralf (Gast)


Lesenswert?

> Also wenn ich im Debugger-Modus auf RUN klicke funktioniert das Programm.
Mit Debugger meinst du den Keil Simulator, oder? Debugger und Simulator 
sind zwei völlig unterschiedliche Sachen, deswegen frag ich.

> Port0.0 blinkt, so wie es sein soll.
Okay. Setze bei CPL LED einen Breakpoint. Lass das Programm bis zum BP 
laufen. Dann notierst du die Zeit die vergangen ist (siehst du links im 
Fenster). Dann lässt du das Programm nochmal durchlaufen, notierst die 
Zeit wieder und errechnest die Differenz.
Wenn dieser Wert dem Wunschwert entspricht, sollte es eigentlich auch 
auf dem Board laufen - es sei denn, man muss beim RB2 die Ports noch 
speziell konfigurieren.

> Irgendwas hängt dann bei der Übertragung auf mein Board, bzw. bei der
> Ausführung.
Die Aussage ist zu wage. Du lädst mit FLIP runter? Hast du nach dem 
Download das Programm gestartet (RUN APPLICATION)? Prüf auch das 
BootloaderJump-Bit, ansonsten läuft der Controller evtl. wieder in den 
Bootloader.

> Hoffentlich habe ich nix falsch eingelötet. Das wird sonst ne
> Riesenfehlersuche.
Quatsch, bei dem Pilleboard haste einen Lötfehler recht schnell 
gefunden, denke ich. Wenn FLIP den Controller akzeptiert, läuft der ja 
schonmal, dann bleibt ja so gesehen nicht mehr viel übrig.

Ralf

von Klaus X. (blacky27)


Lesenswert?

Fehler gefunden. Hatte JP1 vergessen zu setzen, deshalb hatten meine 
LEDs auch keine Spannung.
Einen großen Vorteil hat aber die Fehlersuche >>> man lernt das Programm 
zu verstehen.

MfG
Blacky27

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.