Forum: Mikrocontroller und Digitale Elektronik PIC-Würfel: Interrupts, Flanken und Sleep Mode


von P.H. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo liebe Nutzergemeinschaft,

wir befinden uns in unserer Ausbildung momentan in einem Stadium der 
Verzweiflung. Mein Kollege und ich scheitern schon lange an einem 
Würfel, wobei unser Ausbilder immer wieder mit neuen Aufgaben zu uns 
kommt. Jetzt sollen noch der Sleep Mode, Interrupts und eine Abfrage 
anhand einer fallenden Flanke erfolgen. Ich hoffe ihr könnt uns helfen, 
damit wir das Projekt abschliessen können. Wir nutzen den PIC12F675. 
Vergebt mir meine etwas schlechte Programmierarbeit, aber ich wusste 
nicht wie ich es anders realisieren soll. Hier der Teil an dem Eine 
Flanke abgefragt werden soll.
Wir benutzen einen Neigungswinkelschalter, um ein richtiges 
Würfelfeeling hinzubekommen.Der Sleep Mode soll mit Hilfe des Timer1 
aktiviert werden, und durch eine Flanke an GP5 im Sleep Mode wieder 
aufgeweckt werden.

Hier soll die Flanke abgefragt werden.

Neu_Würfeln

btfss  GPIO, GP5              ; Tasterstand überprüfen
goto  Decrement               ; Sprung zu "Decrement"
goto  Funktionstest           ; Sprung zu "Funktionstest"

Decrement

call  Tab1                    ; Rufe Unterprogramm "Tab1" auf
decfsz  Zaehler, F            ; Speicherzelle "Zaehler" dekrementieren
goto  Neu_Würfeln             ; Sprung zu "Neu_Würfeln"
goto  Neuer_Ladevorgang       ; Sprung zu "Neuer_Ladevorgang"

Danke im Vorraus

P.H.

von Lehrmann M. (ubimbo)


Lesenswert?

1. 100nF zwischen Vcc und Vss (GND) fehlen. Abblockkondensator für 
Spannungsschwankungen und Störungen. Essentiell - Grundlage.

2. LED-Verschaltung ist grauenhaft. Schalten sollte man nach GND und vor 
allem nicht 2*20mA pro Pin.

3. Wenn dann bräuchte man schon das ganze Programm.

4. http://www.sprut.de/electronic/pic/index.htm
Da steht alles wirklich bis in kleinste Detail ausgeführt. Von Sleepmodi 
über Interrupts und Capturemodul ... Wer's dann nicht kapiert ist im 
flaschen Metier unterwegs.

P.H. schrieb:
> Der Sleep Mode soll mit Hilfe des Timer1
> aktiviert werden, und durch eine Flanke an GP5 im Sleep Mode wieder
> aufgeweckt werden.

www.sprut.de und das Datenblatt.

von P.H. (Gast)


Lesenswert?

Der Kondensator ist mittlerweile eingefügt, habe die aktuelle Version 
des Schaltplans nicht hier.

Über Sprut haben wir uns schon informiert, aber kommen nicht wirklich 
weiter.

Die LED Verschaltung wurde vom Leiter unserer Platinenfertigung so 
ausgelegt.

Die Schaltung wird übrigens von einer Knopfzelle mit 3 Volt versorgt.

von Peter D. (peda)


Lesenswert?

Lehrmann Michael schrieb:
> 2. LED-Verschaltung ist grauenhaft. Schalten sollte man nach GND

Sagt wer?
Gibt es etwa ne Schaltungspolizei?

Schau mal ins Datenblatt, in VSS dürfen 300mA fließen, aber in VDD nur 
250mA.
Es kann also durchaus sinnvoll sein die Lasten an VDD zu legen und der 
MC-Strom fließt über VSS.

Rein programmtechnisch ist es vollkommen schnuppe, ob gegen VCC oder GND 
geschaltet wird.


Peter

von P.H. (Gast)


Angehängte Dateien:

Lesenswert?

Hier der neue überarbeitete Schaltplan.

von A.Z. (Gast)


Lesenswert?

Geht es nur um eine Programmierlösung?

von P.H. (Gast)


Lesenswert?

Ja es handelt sich nur um ein Software Problem. Kann jemand helfen?

von P.H. (Gast)


Lesenswert?

Keiner, der uns helfen kann?

von Peter D. (peda)


Lesenswert?

P.H. schrieb:
> Keiner, der uns helfen kann?

Bei PIC-Assembler kann ich Dir leider nicht helfen.

Ich denke mal, die meisten hier benutzen AVRs und programmieren in C.
Bascom taucht auch noch häufig auf.


Peter

von P.H. (Gast)


Lesenswert?

> Ich denke mal, die meisten hier benutzen AVRs und programmieren in C.
> Bascom taucht auch noch häufig auf.
>
>
> Peter

Danke erstmal für den Beitrag. Das Problem ist nur aufgrund der Auflagen 
unseres Betriebs und der Tatsache, dass wir in der Schule auch nur mit 
PIC's arbeiten, soll auch hier ein kleiner PIC genutzt werden.

von U.R. Schmitt (Gast)


Lesenswert?

Lehrmann Michael schrieb:
> 2. LED-Verschaltung ist grauenhaft. Schalten sollte man nach GND und vor
> allem nicht 2*20mA pro Pin.

Sind nur etwa 4mA pro Pin (Knopfzelle - Led-Durchlassspannung) / 560 Ohm 
ergeben 2mA (wohl Low Current Leds).

Zur Programmierung kann ich euch in PIC Assembler auch nicht helfen, 
gibts für PICs nicht auch spezialisierte Foren?

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.