komisches blinkverhalten mit PIC16f877a

OP #2894902
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
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
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
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
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 #2895168
ich habe den grossen prozessor durch den kleinen pic16f627a ausgetausch 
aber das problem liegt immer noch genau gleich an.

nai alles kalt bzw kälter als handwarm.
habe noch eine grüne led angeschlossen um die speisespannung zu 
überwachen...nicht das die spannung an all dem schuld ist.
Angehängte Dateien:
OP #2895174
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
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?
#2895199
danilo S. schrieb:
> warum ist das steckbrtt nicht gut?

Weil 'billige' Steckbretter gerne dazu neigen, dass die Kontakte mehr 
Wackelkontakte sind als irgendwas anderes.

> was heisst versorgungsspannung nicht mit Cs geblockt?

Zwischen + und - gehört bei Digital-IC immer ein 100nF Kondensator. 
Immer. Möglichst nahe am IC.
OP #2895289
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
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.
#2895327
Aus irgendeinem Grund haben Quarze auch oft Anschlussdrahtdicken die 
entweder größer oder kleiner als die Drähten von anderen bedrahteten 
Bauteilen sind. Ist mir auch schon passiert, dass ein Quarz im 
Steckbrett nur so einen lala Kontakt hatte.
OP #2895333
was wäre denn eine geeignete methode eine Schaltung zu testen, welche 
ich schnell und bequem umbauen(umverdrahten) kann. habe bemerkt dass 
Steckbretter nicht so beliebt bei euch sind.

wie machts ihr denn? Lötet ihr alle bauteile in eine Rasterplatine?
Gast #2895339
>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

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.