Guten Morgen zusammen,
ich habe ein Quellcode vom pic10F202 so angepasst(_config und paar
Zeilen), dass es auch auf einem PIC10F322 läuft. Nach paar
Fehlermeldungen habe ich hinbekommen fehlerfrei zu builden. Wenn ich
aber Debuggen möchte, habe ich ein Problem.
Debugger-> Select tool-> "MPLAB SIM" wähle und mein Projekt
simulieren möchte, stürzt der Programm nach paar Zeilen später ab,
sodass ich das Programm neu Starten muss. Was könnte der Grund sein? Das
Debuggen mit MPLAB SIM vom PIC10F202 hatte aber geklappt.
Benutze MPLAB IDE v8.92
Freue mich schon auf alle Antworten..
Gruß
Volker S. schrieb:> Welcher Programm? MPLAB
Ich kriege diese Fehlermeldung:
MPLAB IDE funktioniert nicht mehr.
Ein Problem hat die richtige Ausführung dieses Programms verhindert.
Schließen Sie das Programm.
Hmmm, ich verwende die "alte" IDE eigentlich schon seit Jahren nicht
mehr.
Der 10F322 ist ein relativ neuer PIC. Wenn ich ein Projekt mit dem 322
in der alten IDE anlege, dann hat der Simulator auch nur einen gelben
Punkt und "Beta Support". Das heißt, er ist noch nicht vollständig
implementiert/getestet...
Volker S. schrieb:> Punkt und "Beta Support". Das heißt, er ist noch nicht vollständig> implementiert/getestet...
Ja, bei mir sieht das auch genauso aus wie bei dir. Also ist es nicht
möglich zu debuggen?
uC_anfängerin schrieb:> Also ist es nicht möglich zu debuggen?
Könnte funktionieren oder wie in deinem Fall eben auch nicht ;-)
(((mit einem alten Code von mir funktioniert es z.B.)))
Volker S. schrieb:> Könnte funktionieren oder wie in deinem Fall eben auch nicht ;-)> (((mit einem alten Code von mir funktioniert es z.B.)))
Okay :)
Kann es aber sein, dass ich nicht richtig angepasst habe den Code? oder
hängt das wirklich nur davon ab, dass der PIC zu neu ist für alte IDE?
Daß der Sim durch ein fehlerhaftes PIC-Programm abstürzt, ist
unwahrscheinlich. Gerade bei dem kleinen PIC10... fallen die üblichen
Verdächtigen, wie z.B. falsche Bank, weg.
Probier mal, im Programm an geeigneter Stelle einen CLRWDT-Befehl
einzufügen. Ich hatte das auch schonmal, daß der WDT offenbar im Sim
nicht korrekt behandelt wurde und sich beim WDT-Timeout dann der Sim
einfach verabschiedet hat, und das, obwohl der WDT im Config-Register
gar nicht aktiviert war!
Thomas E. schrieb:> Probier mal, im Programm an geeigneter Stelle einen CLRWDT-Befehl> einzufügen.
Ich habe bemerkt, dass das Programm immer an der Stelle, wo ich timer
initialisiert habe -> Timer_Init abstürzt. Da habe ich den Befehl CLRWDT
hinzugefügt, aber hat sich nicht geändert. Nachdem ich aber Timer_Init
aus kommentiert habe, hat MPLAB nicht mehr abgestürzt. Ich denke da
liegt das Problem.
Nimm doch einfach die aktuelle IDE.
Wenn man schon Jahre lang mit der alten IDE gearbeitet hat, kann es
durchaus sinnvoll sein, die auch noch so lange wie eben möglich zu
nutzen.
Als Neuanfänger halte ich das nicht für sinnvoll, weil man früher oder
später vermutlich doch die neue braucht...
Wenn der Absturz immer an der gleichen Stelle und nicht sporadisch
irgendwann auftritt, sollte es ja kein Problem sein, den Fehler
einzugrenzen! Lass' den Sim halt Schritt für Schritt durch das Programm
laufen und schau, bei welchem Befehl es genau passiert. Keiner hier
weiß, welcher Code sich hinter Deiner Timer_Init Routine verbirgt (Du
könntest Das Programm hier ja auch einfach mal posten, oder ist es
geheim?).
Volker S. schrieb:> Wenn man schon Jahre lang mit der alten IDE gearbeitet hat, kann es> durchaus sinnvoll sein, die auch noch so lange wie eben möglich zu> nutzen.
Eigentlich muss man beide verwenden: Für das, was in der MPLAB 8 noch
nicht geht (z.B. neue PIC-Typen), nimmt man MPLAX-X, und für das, was in
der neuen IDE nicht mehr geht (vernünftiges Debugging von
ASM-Programmen) nimmt man MPLAB 8. Dumm nur, wenn man ASM-Programme für
einen neuen PIC, der in MPLAB 8 noch nicht drin ist, komfortabel
debuggen will...
Ich programmiere nur noch äußerst selten in Asssembler.
Was ist das Problem mit MPLABX?
Ist es wirklich Wert sich als Anfänger in zwei IDEs einzuarbeiten?
Servus,
zumindest einen Punkt aus meinem oben verlinkten "MPLAB-X Bashing" muss
ich revidieren! Mit der aktuellen Version kann man im Watch-Window
tatsächlich den Variablen-Typ (8/16..-Bit/float usw.) einstellen! K.A.,
ob das neu ist oder ich mich nur zu blöd angetellt habe, als ich das
zuletzt (vielleicht vor 1 Jahr?) versucht habe. Bin mir aber recht
sicher, daß ich den naheliegenden Weg (mit der rechten Maustaste im
Watch Window draufklicken) natürlich auch da schon probiert habe!
Thomas E. schrieb:> Mit der aktuellen Version kann man im Watch-Window> tatsächlich den Variablen-Typ (8/16..-Bit/float usw.) einstellen!
Cool, habe ich auch noch nicht gesehen, bzw. noch nicht danach gesucht.
Du meinst bestimmt "Display Value Column as" bzw. wenn man eine Adresse
eingibt, dann auch noch "User defined size" (bei der fast aktuellen
Version 3.55)
<edit> In Bezug auf Trägheit, habe ich leider auch wenig Hoffnung :-(
Für kleine Projekte ist das vermutlich nicht so auffällig und unter
Linux scheint es mir auch etwas agiler als unter Windoof.
Hallo nochmal,
ich kann jetzt glücklicherweise Debuggen. An der stelle Timer_Init habe
ich etwas den Code geändert und hat funktioniert.
Der alte code:
Timer_Init movlw 0C3H
OPTION
retlw 0
Der neue code:
Timer_Init movlw B'000000011'
movwf OPTION_REG
retlw 0
Volker S. schrieb:> Nimm doch einfach die aktuelle IDE.
Da ich das nicht hobymässig mache, sondern ein Projekt ist, wurde mir
die alte IDE heruntergeladen :/
Eine weitere Frage wäre, warum ich nicht gleichen Signal am Ausgang
PIC10F322 bekomme wie bei PIC10F202? wie bei dem anderen PIC bekomme ich
schon Impulse die mit verschiedenen Zeit abstände sind. Aber das Signal
ist sehr schneller. Zwischen zwei Impulsen soll die abstand entweder 1ms
oder 2ms sein bei mir ist es schon aber so 220ms(1 Kästchen=200ms.
Was ich gesehen habe dass PIC10f202 Frequenz von 4 MHz hat und PIC10F322
16MHz. Bei dem alten code wurde Takt: 4Mz/4= 1usec eingestellt.
Ich denke mein Signal ist 16 mal schneller?
Wie kann ich das einstellen?
Info vom Datenblatt:
bit 7 Unimplemented: Read as ‘0’
bit 6-4 IRCF<2:0>: INTOSC (FOSC) Frequency Select bits
111 = 16 MHz
110 = 8 MHz (default value)
101 = 4 MHz
100 = 2 MHz
011 = 1 MHz
010 = 500 kHz
001 = 250 kHz
000 = 31 kHz (LFINTOSC)
movwf OSCCON B'00110000' für 1Mhz habe ich so was geschrieben ist aber
leider falsch. :/
> Da ich das nicht hobymässig mache, sondern ein Projekt ist, wurde mir> die alte IDE heruntergeladen :/
Am guten alten MPLAB gibt es nichts auszusetzen!!!!¹!!²!!!!!³!!!!!
Solange Mann bei den WinzPICkels bleibt.
Klugscheisser schrieb:> Am guten alten MPLAB gibt es nichts auszusetzen!
Na ja, dass es bei einem Fehler im Code abstürzt ist schon bisschen
grenzwertig ;-) Aber jetzt scheint es ja zu laufen...
uC_anfängerin schrieb:> Vielen Dank, da hat sich mein Signal aber nichts geändert. Wohl liegt> das Problem wo anders.
Wo schaust du denn das Signal an?
Real mit einem Oszilloskop, oder im Simulator?
Volker S. schrieb:> uC_anfängerin schrieb:>> Vielen Dank, da hat sich mein Signal aber nichts geändert. Wohl liegt>> das Problem wo anders.>> Wo schaust du denn das Signal an?> Real mit einem Oszilloskop, oder im Simulator?
Ja, real mit einem Oszi.
Ich denke die beiden Timern sind unterschiedlich aufgebaut und deswegen
sieht das Signal anders aus? Noch bin ich beim ausprobieren, wenn ihr
Vorschläge habt, bin sehr dankbar!