Forum: Mikrocontroller und Digitale Elektronik PIC16F676 (interner RC) läuft nicht !?


von Marco (Gast)


Angehängte Dateien:

Lesenswert?

Hi!

Habe einen PIC16F676 und will ihn mit internem RC betreiben, leider
macht er einfach nichts...

Befasse mich noch nicht allzulange mit PICs und komme hier einfach
nicht weiter. Vielleicht hat jemand eine Idee?

Vielen Dank im vorraus!

von Memmer (Gast)


Lesenswert?

www.sprut.de

Alles beschrieben, was du suchst

von Schoaschi (Gast)


Lesenswert?

Wie siehts mit den Fuses aus? Wo hast du diese gesetzt? Denn die Wahl
der Taktquelle hängt von den Fuses ab.
Ich kann zwar kein Assembler... doch sind sie mir hier nicht
untergekommen.

von sackgesicht (Gast)


Lesenswert?

Laut Datenblatt beginnt der Programmspeicher bei 0x0005. Also würde ICH
so anfangen:

       :
ORG    H'0000'     ; Reset-vektor
       goto Start

ORG    H'0004'     ; Interrupt-Vektor
       goto IRS

ORG    H'0005'     ; Programm Start

ISR:               ; hier die Interrupt Service Routine(n)
       retfi

Start:             ; hier startet das Hauptprogramm
       clrf PORTA
       :

von Marco (Gast)


Lesenswert?

Hi Schoaschi!

Die Fuses werden gewöhnlich in Assembler nicht im Programmtext gesetzt
sondern später beim Brennprogramm eingestellt ...

LG

von Marco (Gast)


Lesenswert?

Hi Sackgesicht!

Das sind doch soweit ich weiß nur die Einsprungadressen!?
Normalerweise kann man sein Programm direkt bei 0000H beginnen.
Verwende auch keinen Interupt. Werds aber einfach mal ausprobiern.
Danke.

LG

von Marco (Gast)


Lesenswert?

Hi Memmer!

Danke für den Sprut-Tipp! Klasse Seite, ist echt weiterzuempfehlen!
Glaube ich hab den Fehler gefunden. Da muss man erstmal drauf kommen.
Werds auf jeden Fall gleich mal ausprobieren......


Ausschnitt aus der Seite von www.sprut.de :
Dem Autor sei gedankt!

"Wenn ein Brenner auf einen PIC zugreifen will, dann schaltet er
normalerweise seine 5V-Betriebsspannung ein, legt  MCLR auf Vss (um
einen Reset auszulösen) und legt dann MCLR schlagartig auf Vpp (+12V),
so daß der PIC nach dem Reset nicht dazu kommt, auch nur einen einzigen
Befehl abzuarbeiten. Damit ist der PIC im Programmiermodus, und durch
den Reset steht der interne Programcounter des PIC auf der Adresse
0x00. Dort kann man dann anfangen zu brennen.
Wenn bei einem PIC aber beim vorigen Brennen der interne Oszillator
aktiviert wurde und MCLR zu einem I/O-Pin gemacht wurde, dann ignoriert
der PIC das Vss-Signal an MCLR und beginnt mit der  Abarbeitung seines
Programms, sobald die Betriebsspannung Vdd angelegt wird.. Beim dann
folgenden Anlegen von Vpp an MCLR stoppt der PIC seine Arbeit, aber der
Programcounter steht nicht mehr auf 0x00, und das anschließende Brennen
eines neuen Programms erfolgt auf zufälligen Adressen des
Programmspeichers.
Solche PICs lassen sich nur problemlos brennen, wenn zuerst  Vpp (12V)
und danach Vdd (5V) angeschaltet wird."

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
Noch kein Account? Hier anmelden.