Hallo zusammen, ich will ein kleines PIC-Projekt in Assembler beginnen. Als PIC verwende ich einen 12F508. Betriebsspannung sind 3 Knopfzellen mit jeweils 1,4V und 650mAh, also 4,2V. Folgende Funktionen sollten realisiert werden: Wenn ein Schalter (Reedkontakt) geschlossen wird, soll für 2min30s 4 rote LEDs leuchten. Nach den 2min30s sollen 4 grüne LEDs leuchten, bis der Schalter wieder geöffnet wird. (Wenn möglich sollen die LEDs getaktet werden, damit die Knopfzellen länger halten.) Außerdem soll der PIC in Standbye-Betrieb gehen wenn er nicht gebraucht wird. Habe mal eine PAP gemacht. Kann dass so gehen oder sollte ich anders vorgehen? PS: Werte im Schaltplan stimmen nicht mehr, geht nur um die Schaltung an sich
so habe jetzt schon mein erstes Problem, wollte mal schnell mit einer Zeitschleife die LEDs mit einem Blinklicht testen, es stimmt aber vorne und hinten nicht.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 | |
63 | |
64 | |
65 | |
66 | |
67 | |
68 | |
69 | |
70 | |
71 | |
72 | |
die LEDs leuchten nur 8sec statt 2,5min. Als Quarz wird das interne mit 4Mhz verwendet
> ;1280*(*256*5)=1638400 > ;1634800*(4*23)=150732800µs=150,73s=2,5min Überleg doch mal was an diesen Timing Berechnunegn falsch sein könnte. > ;(256*5)=1280 Die ist richtig, zu dazu kommen noch die 5 Takte aus der zweiten Schleife also 1280+5 und das mal 256 Durchläufe ergibt 328960 plus nochmal 4 für die letzte Schleife und das mal 23 sind summa sumarum 7566172 ergibt bei 4MHz Takt eine Zeit von 7,566 Sekunden. Passt also ganz Genua.
Gast
#1633422
Will jetzt einen SMD-PIC programmieren. Kann es sein dass ich da nur 5 Pins brauche? GP0 = ICSPDAT Datapin GP1 = ICSPCLK Clockpin GP3 = VPP Voltage Input und halt Vdd und Vss
Gast
#1633446
Ja, du brauchst 5 Pins: Vpp (~12V) V+ (~5V) GND Data Clock ~ = ungefähr
Gast
#1633448
Zum programmieren und auch sonst viel zu PICs: sprut.de
so, habe jetzt dass nächste Problem: Ich will eig. den GP0 als Eingang verwenden. Doch er erkennt High nur, wenn ich ihn auf VDD direkt anschließe. Den Schalter mit dem Pullup-Widerstand bekommt er nicht auf die Reihe. Das komische jetzt jedoch ist, dass wenn ich den GP4 als Eingang verwende, dieser optimal funktioniert mit dem Schalter und Pullup. Ist dass immer so, oder muss ich den GP0 noch anders konfigurieren? Auszug aus dem Programm:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
so habe den Fehler jetzt gefunden. Habe mal mit dem Multimeter nachgemessen und gesehen, dass in der jetzigen Schaltung GP0 die Spannung gegen 0 zieht. Habe nun einfach statt dem Pullup einen Pulldown aufgesteckt und schon geht es :)
So bin habe jetzt mal schnell einen Programmer geroutet, müsste so funktionieren laut Sprut und Datenblatt oder? GND ist so verlegt, damit die Datenleitung von der Clockleitung abgeschirmt ist.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.

