komisches blinkverhalten mit PIC16f877a

OP #2894902
Lesenswert?

Hallo zusammen.

Neuerdings habe ich mich an einen Pic herangewagt, welcher mehr I/o's 
hat. Den 16F877a. Nun habe ich ein einfaches blinkprogramm geschrieben.
Es funktioniert leider nur teilweise. Am pin OSC1 und OSC2 ist der 
Taktgenerator mit 2x 22pF condis auf masse gehängt.


main{

//konfiguration
TRISA = 0x00; TRISB = 0x00; TRISC = 0x00; TRISD = 0x00;

//was ich noch eingestellt habe:  watchdog = disable,
  XT osciallator ==> 4.194304Mhz, PWRT = enable, Brown-out Reset = 
enable,


while(1)
    {
      RB1 =1;
      delay_ms(500);
      RB1=0;
      delay_ms(500);
   }
}


Sobald der uC 5v bekommt fängt das LED am pin RB1 an zu blinken mit der 
frequenz von 1Hz. aber nach etwa 2min hört es einfach auf und macht 
keine anzeichen von ,,online,,. aber nach weiteren 20sek. fängt es 
wieder an zu blinken als währe nichts gewesen. kann mit jemand sagen was 
ich falsch mache? es ist ziemlich nervig...mit dieser eigenschaft kann 
kein vernünftiges projekt realisiert werden...
#2894972
Lesenswert?

danilo S. schrieb:
> an Vdd ist 5V,  an Vss ist 0V,

Das war nicht gemeint. Das du die angeschlossen hast, glaub ich dir 
schon. Aber wo kommen die her? Steckernetzteil, Labornetzteil, ....
Ist die Quelle über jeden Zweifel erhaben, im 2 MInuten 'Takt' die 
Spannung einbrechen zu lassen? Und sei es nur ganz langsam einbrechen, 
bis irgendwann der Brown Out anschlägt?
Gast #2895009
Lesenswert?

Ich hatte mit dem Hitech-Light-Compiler, den man mit MPLAB zusammen 
herunter lädt, und der Freeware Demo ist, mal arge Probleme. Er ist 
nicht einfach codelimitiert, wie es anderswo ist, aber er ist anders 
limitiert, darüber fand ich nichts.

Beispielsweise konnte man keine zwei Klammerterme in einer Zeile 
verknüpfen, und das Ergebnis einer Variablen zuweisen. Das machte der 
einfach gar nicht. Erst, nachdem ich einen Dreizeiler aus dem Code 
machte.

Vielleicht mag der auch keine Strukturen, so weit versuchte ich es gar 
nicht mehr.

Das doofe Ding setzte mir einfach Code ohne Fehlermeldungen so um, daß 
der nicht funktionierte.

Ich mußte den Code dann auseinander klamüsern, und in einfachere 
Konstrukte überführen. Dann ging es.

Auf meinen anderen Plattformen wie 8051 geht es doch mit C und dem SDCC 
auch einwandfrei.



Karl Heinz Buchegger schrieb:

> Und sei es nur ganz langsam einbrechen,
> bis irgendwann der Brown Out anschlägt?

Für einen Brown Out reicht bestimmt auch manches Steckbrett.
OP #2895033
Lesenswert?

ja mit einem labornetzteil.
ich habe den pic16f627a programmiert. der besitzt einen INTRC (interner 
taktgenerator). und da hat es reibungslos geklappt und die schleife 
while(1) hat wirklich ist tatsächlich unendlich viele male wiederholt. 
aber nun mit dem externen klappts irgendwie nicht so...daraus schliesse 
ich, dass die versorgung nicht der übeltäter ist.
Gast #2895044
Lesenswert?

danilo S. schrieb:

> daraus schliesse
> ich, dass die versorgung nicht der übeltäter ist

Mach mal ein Foto, wie der externe Oszillator aus sieht. Quarzdefekte 
gab es auch schon mal, oder zu lange Strippen, alles möglich. Hast du 
einen Ersatzquarz? Ist das Verhalten zeitlich immer exakt 
reproduzierbar?
OP #2895174
Lesenswert?

jetzt noch eine ganz bescheuerte theorie...wenn ich das ganze aus der 
ferne beobachte läufts reibungslos(sofern ich es beobachten kann)  aber 
sobald ich in die nähe komme habe ich das gefühl fängt die ganze 
apparatur an zu spinnen... einbildung oder könnte was daran sein (EMV 
oder so)
OP #2895194
Lesenswert?

warum ist das steckbrtt nicht gut? ich will ja meine schaltungen zuerst 
mal testen. oder ist das falsch?

oke ich mach mal ein neues projekt mit der andere confi. -->brown-out 
reset diable.

was heisst versorgungsspannung nicht mit Cs geblockt?

soll ich einen Kondensator zwischen + und - schalten als 
stützkondensator?
OP #2895289
Lesenswert?

ich hab nun mal den quarz gewechselt und es sieht vielversrsprächend 
aus...seit 10min beobachte ich die LED und sie blinkt immer im gleichen 
takt.

die grüne LED hat einen Vorwiderstand aber man sieht ihn nicht ...hab 
das bein abgeschnitten und direkt ein R dran gelötet. Als bastler hat 
man solche sachen immer parat:)
Gast #2895313
Lesenswert?

danilo S. schrieb:

> ich hab nun mal den quarz gewechselt und es sieht vielversrsprächend
> aus...seit 10min beobachte ich die LED und sie blinkt immer im gleichen
> takt.

Quarze bitte immer wie ein rohes Ei behandeln. Nie runter fallen lassen, 
oder ähnliches. Die haben innen sehr empfindliche stoßempfindliche 
Quarzscheibchen. Das hatten wir hier im Forum auch schon mal.
Gast #2895339
Lesenswert?

>leider habe ich gerade keinen 100n im haus.

Das müssen nicht genau 100n sein. Hast du sonst irgendwas
da? 47nF oder 1uF Elko reicht zur Not auch erst einmal.

>ich hab nun mal den quarz gewechselt und es sieht vielversrsprächend
>aus

Dann pack den alten Quarz auch noch mal rein.
Vieleicht doch ein Kontaktproblem.

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