Hallo, bin neu hier und auch unerfahren im Umgang mit der Pic-Programmierung. Ich habe einen Pic10F200 und möchte mit dem einem Ausgang einen Lampe ansteuern. Mit einem anderen Eingang möchte ich m,it einer Taste diese Lampe sowohl ein-, als auch ausschalten können. Da ich ganz neu bin habe ich mir das Programm "BlinkLED" genommen, doch das schalten habe ich nicht hin bekommen. Habe mich bisher auch nur in .asm eingelesen. Ich hoffe, hier kann mir jemand helfen. Wenn es sein muß, werde ich mich auch noch in "C" schlau machen, um das Problem lösen zu können. Hat ausserdem noch jemand eine hilfe, wie ich ein Flackerlicht hin bekomme. Habe bis jetzt 10 Schleifen mit unterschiedlichen Zeiten für das Leuchten der LED benutzt. Vielen Dank schon einmal. Euer Piccer.
Gast
#1057767
Hallo piccer, schau mal, ob Du hiermit was anfangen kannst. In dem Code wird eine Taste an GP3 abgefragt (kurz drücken = EIN/AUS, lange drücken = nächster Modus). Je nach Modus werden an 2 Ausgängen PWM-Werte erzeugt. Was Du nicht brauchst, kannst Du ganz einfach rauswerfen; Timer oder sonstiges hab ich nicht eingesetzt.
Gast
#1057771
Hallo, bei verschiedenen Benutzern schwirrt eine Glaskugel herum, leider fehlt mir die, um den Schaltplan, sowie die asm anzusehen, damit ich dir helfen könnte.
Also, danke erst einmal für das C-Programm. Schaffe es aber leider nicht es in irgend einer weise so zu compilieren, oder so, um es auf den PIC zu bekommen. Eventuell kannst du mir ja sagen, wie ich das machen kann. Danke. Wegen der Glaskugel! Ich habe auch keine, versuche aber jetzt klarheit in die Sache zu bringen. Hier die .asm :
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 | |
73 | |
74 | |
75 | |
76 | |
77 | |
78 | |
79 | |
80 | |
81 | |
82 | |
83 | |
84 | |
85 | |
86 | |
87 | |
88 | |
89 | |
90 | |
91 | |
92 | |
93 | |
94 | |
95 | |
96 | |
97 | |
98 | |
99 | |
100 | |
101 | |
102 | |
103 | |
104 | |
105 | |
106 | |
107 | |
108 | |
109 | |
110 | |
111 | |
112 | |
113 | |
114 | |
115 | |
116 | |
117 | |
118 | |
119 | |
120 | |
121 | |
122 | |
123 | |
124 | |
125 | |
126 | |
127 | |
128 | |
129 | |
130 | |
131 | |
132 | |
133 | |
134 | |
135 | |
136 | |
137 | |
138 | |
139 | |
140 | |
141 | |
142 | |
143 | |
144 | |
145 | |
146 | |
147 | |
148 | |
149 | |
150 | |
151 | |
152 | |
153 | |
154 | |
155 | |
156 | |
157 | |
158 | |
159 | |
160 | |
161 | |
162 | |
163 | |
164 | |
165 | |
166 | |
167 | |
168 | |
169 | |
170 | |
171 | |
172 | |
173 | |
174 | |
175 | |
176 | |
177 | |
178 | |
179 | |
180 | |
181 | |
182 | |
183 | |
184 | |
185 | |
186 | |
187 | |
188 | |
189 | |
190 | |
191 | |
192 | |
193 | |
194 | |
195 | |
196 | |
197 | |
198 | |
199 | |
200 | |
201 | |
202 | |
203 | |
204 | |
205 | |
206 | |
207 | |
208 | |
209 | |
210 | |
211 | |
212 | |
213 | |
214 | |
215 | |
216 | |
217 | |
218 | |
219 | |
220 | |
221 | |
222 | |
223 | |
224 | |
225 | |
226 | |
227 | |
228 | |
229 | |
230 | |
231 | |
232 | |
233 | |
234 | |
235 | |
236 | |
237 | |
238 | |
239 | |
240 | |
241 | |
242 | |
243 | |
244 | |
245 | |
246 | |
247 | |
248 | |
249 | |
250 | |
251 | |
252 | |
253 | |
254 | |
255 | |
256 | |
257 | |
258 | |
259 | |
260 | |
261 | |
262 | |
263 | |
264 | |
265 | |
266 | |
267 | |
268 | |
269 | |
270 | |
271 | |
272 | |
273 | |
274 | |
275 | |
276 | |
277 | |
278 | |
279 | |
280 | |
281 | |
282 | |
283 | |
284 | |
285 | |
286 | |
287 | |
288 | |
289 | |
290 | |
291 | |
292 | |
293 | |
294 | |
295 | |
296 | |
297 | |
298 | |
299 | |
300 | |
301 | |
Und die Schaltung soll so sein, das ich mit dem Ausgang 0 eine LED ansteuere und an dem Eingang 3 einen Taster habe, der mir die LED flackern lassen soll, oder aus macht. Hoffe, jetzt ist eine Glaskugel nicht mehr notwendig. Wenn noch was unklar ist, einfach schreiben. Bin total verzweifelt. Danke
Gast
#1058597
Hallo piccer, mit ASM kanst Du mich so jagen, wie ich Dich mit C. Ich habe das ganze in MPLAB mit dem freien C-Compiler von Hi-Tech gemacht. Wenn Du eine aktuelle Version von MPLAB installierst, wird das im Anschluß gleich mitinsatlliert. Danach musst Du natürlich noch das Projekt entsprechend einrichten. Kann ich Dir bei Bedarf heute Abend mehr zu sagen, wenn ich zu Hause bin; Oder anders herum: Definiere das Flackern doch mal etwas genauer, dann kann ich Dir mit ein paar Zeilen entgegen kommen.
Gast
#1058599
Ja schon gut. Habs jetzt auch gesehen...
Hallo, bei der schnellen Durchsicht ist mir aufgefallen, daß die pull-ups nicht eingeschalten sind. Warscheinlich liegt es daran. hier dann noch der Code
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 | |
73 | |
74 | |
75 | |
76 | |
77 | |
78 | |
79 | |
80 | |
81 | |
82 | |
83 | |
84 | |
85 | |
86 | |
87 | |
88 | |
89 | |
90 | |
91 | |
92 | |
93 | |
94 | |
95 | |
96 | |
97 | |
98 | |
99 | |
100 | |
101 | |
102 | |
103 | |
104 | |
105 | |
106 | |
107 | |
108 | |
109 | |
110 | |
111 | |
112 | |
113 | |
114 | |
115 | |
Die verschachtelten Rücksprünge bei led_on würde ich nicht so machen auch wenn es in dieser Variante funktioniert. Besser wäre: led_on bsf LED call delay_10ms bcf LED movlw 5 call delay_10ms return auch die goto $ sollte man sich nicht erst angewöhnen. Ein zusatzlicher Befehl dazwischen und nichts geht mehr...
Die goto $ kommen von einem delay-generator, also automatisch generiert. Sorry.
So, habe das Prog. mal getestet. Doch leider ohne Erfolg. Wenn ich den Taster drücke, bleibt die LED dauerhaft an und geht nicht mehr aus. Als funktioniert die Schleife und das EIN7AUS schalten nicht. Schade, hatte mich so darauf gefreut. Eventuell kann ja noch mal einer nachscheuen, was der Fehler sein könnte. Noch mal zur Funktion : 1. Ich möchte mit dem Taster an GP3 eine Funktion ein- und wieder ausschalten (Wenn sie eingeschaltet ist, soll Sie solange die Funktion ausführen, bis die Taste erneut gedrückt wird.) 2. Die Funktion soll ein Flackerlicht sein, Ähnlich einem Feuer. (Mal länger oder kürzer an, oder mal länger oder kürzer aus) 3. Wenn es geht das Programm in .asm damit ich es verstehe Wenn es in C ist, auch kein Problem, aber dann bitte mit kleiner Anleitung, wie ich es in den Baustein bekomme. Danke. 4. Es muß alles in den PIC10F200 passen, denn das ist der Baustein, den ich dafür nehmen will und muß. Schon mal vielen Dank an Alle, die mir bisher geholfen haben und noch helfen werden ! Euer Piccer.
Gast
#1062814
Hallo Piccer, 1. Du hast deine Taste nicht entprellt. 2. Momentan bleibt deine LED nur aus, wenn du die Taste ständig gedrückt hältst. Mainloop movlw b'00001110' ; GP0 output tris GPIO bcf LED ;LED ist aus btfss TASTE ; Wenn Taste nicht gedrueckt ;dann gehe zum restl. Code goto Mainloop ; dann springe ;solange die Taste gedrückt tu mal so: Hier die .asm : list p=10f200 ;*********************************************************************** ;* Pinbelegung ;* ---------------------------------- ;* GP: 0 > LED mit 1 kOhm Vorwiderstand ;* 1 - ;* 2 - ;* GP: 3 > Taster als Eingang ;* ;*********************************************************************** ; ;sprut (zero) Bredendiek 05/2005 ; ; Blinklicht mit PIC10F202 am Pin GP0 ; ; Prozessor 10F202 (oder 10F200) ; ; Prozessor-Takt 4 MHz intern ; ; ;*********************************************************************** ; Includedatei für den 10F202 einbinden #include <p10f202.inc> radix dec ; Configuration festlegen: ; kein codeprotection ; kein WDT-Timer ; kein Reset-Pin __CONFIG _CP_OFF & _WDT_OFF & _MCLRE_OFF ;*********************************************************************** ; Variablen festlegen ab 10h cblock dly_0 dly_1 dly_2 M0 endc #define LED GPIO,0 #define TASTE GPIO,3 ;******************************************************* ; Beginn des Programmcodes org 0x0000 movwf OSCCAL ; Oszillator kalibrieren movlw b'01001111' ; OPTION Pull-UP option ; bcf CMCON0,CMPON ; Comparator off nur bei 10F204/206 ;******************************************************* ; Warten auf Taste GP3 ;******************************************************* ;******************************************************* Mainloop movlw b'00001110' ; GP0 output tris GPIO bcf LED bcf M0,0 ;Merker gelöscht ; Start btfss M0,0 ;Funktion ein oder aus? goto Taste_ein ;Funktion ist aus, soll eingeschaltet werden Taste_aus btfss TASTE ; Taste gedrückt? goto AUS ;ja, dann schalte Flackerlicht aus movlw 25 ;nein, Flackerlicht an call led_on movlw 10 call led_on movlw 15 call led_on movlw 20 call led_on movlw 30 call led_on movlw 27 call led_on movlw 18 call led_on movlw 40 call led_on goto Start ; Springe ins Hauptprogramm AUS movlw .10 call delay_10ms ;Entprellung btfsc TASTE ;Taste immer noch gedrückt? goto Start ;nein, Abbruch btfss TASTE ;Warten bis Taste losgelassen goto $-1 bcf LED ;LED aus bcf M0,0 ;Merker löschen movlw .5 call delay_10ms goto Start Taste_ein btfsc TASTE ;Taste gedrückt? goto Start ;nein movlw .10 ;ja call delay_10ms ;Entprellung btfsc TASTE ;Taste immer noch gedrückt? goto Start ;nein, Abbruch btfss TASTE ;ja,warten bis Taste losgelassen goto $-1 bsf M0,0 ;ja, Flackerlicht ein movlw .5 call delay_10ms goto Start ;******************************************************* led_on bsf LED call delay_10ms bcf LED movlw 5 ;******************************************************* delay_10ms movwf dly_0 movlw 0xCE movwf dly_1 movlw 0x08 movwf dly_2 decfsz dly_1, f goto $+2 decfsz dly_2, f goto $-3 decfsz dly_0, f goto delay_10ms retlw 0 ;*******************************************************+++ end Das Programm habe ich nicht getestet, also keine Garantie darauf! Vielleicht hilft dir das auch so weiter. Ich muß jetzt auf dem Weihnachtsmarkt! Viel Glück für dein Krippenlagerfeuer!!! MfG Erhard
Sorry, das ich mich erst jetzt wieder melde. Hatte ein wenig Stress auf der Arbeit!! Ich habe Dein (@Erhard) Programm getestet, doch leider scheint etwas nicht zu funktionieren! Wenn ich den Pic10F200 schiesse und dann einstecke, ist die LED sofort an und reagiert auch nicht auf den Taster! Man sieht auch kein Flackern! SCHADE ! Doch es wird langsam Zeit, da meine Frau immer mehr am drängeln ist ! Die Krippe hat immer noch kein Feuer !!! :-( Ich hoffe, jemand kann mir den entscheidenden Tip geben! Entweder eines der oberen Programme zu erweitern, oder einen anderen Vorschlag zu unterbreiten, der funktioniert. Vielen Dank schon einmal für alle tatkräftige Unterstützung. Ich wünsche schon mal allen ein schönes und frohes Weihnachtsfest. Euer Piccer.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.