PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MPLAB IDE - Simulationsproblem



martini007
15.11.2009, 18:43
Hallo Leute!
Habe ein Problem bei der Simulation eines einfachen Programms mit MPLAB. Programm funktioniert an sich, auch die entsprechenden Register enthalten die vorgesehenen Werte. Allerding nicht so beim GPIO - Register.
Es lässt sich irgendwie nicht verändern. (Ich arbeite mit einem PIC 12F675)
Hier mein kleines Bsp.-Programm:




list P=12F675
#include "P12F675.inc"
nolist
errorlevel -302

__config _CP_OFF & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF & _INTRC_OSC_NOCLKOUT



org 0x00
call Init


main
movlw B'000001' ; GPIO - Test
movwf GPIO

bsf GPIO,1

end


;-------------------------------------------------------------------------------------------



Init
clrf GPIO
bsf STATUS,RP0
call 0x3FF
movwf OSCCAL
bcf OPTION_REG,7
movlw B'11111100'
movwf TRISIO
bcf STATUS,RP0
movlw 7
movwf CMCON
clrf ANSEL
clrf INTCON

return
end

Würde mich freuen, wenn jemand eine Idee hat, woran das liegen könnte.

martini007
16.11.2009, 00:17
Ok, hab den Fehler selbst gefunden.
Der Fehler liegt im Programmteil "Init" und zwar befinden sich die Register "ANSEL" und "INTCON" in Bank 1 und nicht in Bank 0, wie im Programmcode steht. Somit ist es auch logisch, dass vorher das Reg. GPIO nicht beschrieben werden konnte, da beim PIC 12F675 das ANSEL-Reg. für die Zuweisung digitaler IOs gesetzt werden muss.

Siro
16.11.2009, 18:37
Deinen Fehler hast Du richtig erkannt, aber der Richtigkeit halber:
Das INTCON Register ist gespiegelt und in beiden Banken verfügbar. Hier kannst Du ohne das Umschalten des RP0 Bits zu jederzeit zugreifen. Beim ANSEL Register must Du jedoch, wie Du richtig geschrieben hast,
zunächst die BANK 1 auswählen.

zur Beruhigung: 90 Prozent von unerklärlichem Fehlverhalten meiner Software war ein BANKSELECT Problem.


mfg. Siro

martini007
16.11.2009, 20:18
Es ist zum verzweifeln! Jetzt wo ich den Fehler gefunden habe, lässt sich der PIC irgendwie nicht mehr beschreiben. Ich arbeite mit einem Velleman PIC Programmer Board von Conrad und bis Gestern ging es noch. Jetzt kommt währends des Beschreibens (Write all data) immer eine Fehlermeldung und der Programmcode ässt sich alleine gar nicht mehr übertragen. Ist das Ding jetzt kaputt?