Hallo allerseits, ich habe eine Testschaltung mit einem PIC 18F2550 aufgebaut. Nun wollte ich mal nur zum Anfang einen Port als Ausgang setzten und einen Pin auf High setzen. Leider ist der Pin nach Anlegen der Spannung nur ca. 3 Sekunden High, und dann wieder low. Der PIC scheint irgendwie abzustürzen. Ich habe schon alle Oszillatoreinstellungen probiert. Quarz-Kondensatoren passen auch. Ich finde einfach den Fehler nicht. Kann mir jemand weiter helfen? Folgenden Code habe ich zum Sezten des Ports verwendet (Ausschnitt) movlw B'00000000' movwf TRISD ;Port RD komplett als Ausgang movlw B'00001000' movwf LATD ;Setze RD3 auf High loop: goto loop Für Hilfen wäre ich sehr dankbar. Ich habe vorher mit Atmel AVR gearbeitet und steige jetzt um. Gruß Jan
> Ich habe vorher mit Atmel AVR gearbeitet und steige jetzt um.
Uhh, darf man hie eigentlich nicht sagen... ;)
Aber wie Thorsen schon meinte: WatchDog ON? Und wie sieht der Rest
deines Programms aus?
Hallo,
ich bin so langsam am Verzweifeln. Ich habe folgenden Code geschrieben:
LIST P=18F4550 ;directive to define processor
#include <P18F4550.INC> ;processor specific variable
CONFIG PLLDIV = 1
CONFIG CPUDIV = OSC1_PLL2
CONFIG USBDIV = 1
CONFIG FOSC = HS
CONFIG FCMEM = OFF
CONFIG IESO = OFF
CONFIG PWRT = ON
CONFIG BOR = OFF
CONFIG BORV = 3
CONFIG VREGEN = ON
CONFIG WDT = OFF
CONFIG WDTPS = 1
CONFIG MCLRE = ON
CONFIG LPT1OSC = OFF
CONFIG PBADEN = OFF
CONFIG CCP2MX = OFF
CONFIG STVREN = OFF
CONFIG LVP = OFF
CONFIG XINST = OFF
CONFIG DEBUG = ON
ORG 0x0000
goto Main ;go to start of main code
Main:
movlw B'00000000'
movwf TRISD ;RD-PORT als Ausgang
movlw B'11111111'
movwf LATD ;Alle RD auf High
loop:
goto loop
END
Nun ist es so, dass ich einen 18LF2550 einsetze (also für niedriege
Spannungen, Quarz ist ein 4MHz HC49U-S mit 20pF) Am CLKO Messe ich mit
dem Oszi eine wunderschöne Sinusspannung mit 4MHz. Microchip empfiehlt
aber allerdings 27pF Kondensatoren für 4MHz Quarz-Oszillatoren. Aber er
müsste ja laufen, wenn ich die 4MHz Sinusspannung mit dem Oszi am
Quarz-Ausgang (CLK0) Messe.
Nun ist folgendes Phänomen: Mit 5V funktioniert alles einwandfrei.
Betreibe ich jedoch den PIC mit 4V, dann sind die RD für ca. 4Sekunden
High und gehen dann auf Low. Hab mir schon gedacht, dass das mit dem
Brown-Out zusammenhängt, aber das hab ich ausgeschalten. (Die
Konfiguration habe ich über den Assembler-Text reingeschrieben)
Habe schon mit dem Watch-Dog, Brownout rumgespielt, aber ich weiß nicht,
warum es bei 4V nicht funktioniert. Es ist ja ein LF-Typ, der bis runter
zu 2V betrieben kann.
Für Hilfen wäre ich sehr dankbar.
Gruß
Jan
#include <P18F4550.INC> ;processor specific variable Passt das zu deinem 18LF2550?
Hallo, ich habs jetzt mit einen 18LF4550 probiert. Das gleiche. Aber ich hab jetzt die Lösung. Hab den Pull-up am MCLR vergessen. Bitte vielmals um Entschuldigung, dass ich hier wegen so einem dummen Fehler gefragt habe. Aber wenigstens kenne ich jetzt schon mal alle Config-Einstellungen des PICs ;-) Trotzdem danke. Gruß Jan
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.