Falsche Fuses bei PIC18F4550?!

Gast #162516
Lesenswert?

Hi

Ich bin wieder einmal beim verzweifeln! ich glaube ich bin nicht
geschaffen für µC. mit AT89C52 und AT89Cx051 hab ich schon etwas übung
und schaff auch so manches, aber jetzt probier ich mich gerade mit den
PICs, genauer gesagt dem PIC18F4550. Das einzige was ich schaffen will,
ist ein LED blinken zu lassen. Im anhang sieht man mein Programm. was
stimmt denn damit nicht? Ich programmiere im CCS und spiele das
Programm mit dem P18 Programmer von sprut (www.sprut.de) mit hilfe des
Brenners5 auf den PIC.
Habe ich vl bei den fuses mist gebaut? oder was passt sonst nicht?

der schaltplan folgt.

ich hoffe es kann mir jemand helfen.

mfg schoasch

PS.: ich benutze einen Quarzoszillator mit 12MHz.
Angehängte Dateien:
Gast #162521
Lesenswert?

Danke für den tipp. ich habe das auch schon ausprobiert... aber nichts.
das de PIC tot ist?! aber ich kann ihn ohne probleme neu programmieren
und wenn ich ihn auslese und vergleiche haut auch alles hin.
ich hab jetzt auch alle pegel nachgemessen. sind alle richtig. mit dem
KO hab ich mir auch angsehen ob der quarzoszillator schwingt, tut er,
er schwingt schön mit 12Mhz mit einer Amplitude von 5V. wobei das
komische ja ist, dass das LED gestern schon einmal geleuchtet hat.

zur schaltung: daweil habe ich noch keinen schaltplan digital, aber
prinzipiel sieht er so aus:

Ich habe einen LM7805 mit dem dazugehörigen Kondensatoren. von da geh
ich dann mit den 5V auf Vdd (PIN11 und PIN 32) und mit Masse auf
Vss(PIN 12 und PIN 31). Der Ausgang des Quarzoszillators hängt an
OSC1(PIN 13). das LEd liegt mit der RD2(PIN 21) und ist über den
widerstand gegen masse geschaltet. und an MCLR (PIN1) liegt ein
widerstand der gegen 5V geschalten ist.

Hat es was mit der schaltung?
Gast #162522
Lesenswert?

Kann es ein, daß du in deinem Code RD2 (LED) auf low legst, dann 1000µs
wartest und dann RD3 auf High legst, und wieder 1000µs wartest, und das
ganze in einer Endlosschleife? Was soll da blinken, die LED wird am
Anfang auf Low gelegt, und bleibt bis zum nächsten Reset so. Ich würde
das so schreiben:

while(TRUE)
{
 output_low (PIN_D2);
 delay_us(250000);
 output_high (PIN_D2);
 delay_us(250000);
}

Die höheren Delay-Zeiten deshalb, weil du ja auch was blinken sehen
willst. Mit dem Wert 1000 hast du ne Frequenz von 500Hz (?), da siehst
du nix blinken.
Gast #162523
Lesenswert?

f***, du hattest recht. Danke.
nur ich glaube der PIC dürfte ebenfalls nicht mehr unter uns weihen
oder ich habe bei der schaltung einen fehler, denn es tut sich noch
immer nichts. aber vl liegt der fehler auch wo anderst. vl hat auch
mein programmiergerät was, denn der 5V spannungsregler wird mir
irgendwie zu warm und es fließt im ruhezustand ein strom von ca 70mA.

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