Hallo, ich habe ein kleines Problem mit einer Lüftersteuerugs-Schaltung aus dem Web. Die Lüftersteuerung wird mit einem Atmel AT 90S2313 betrieben. Ich habe aber nur den Nachfolger, den Attiny 2313 bekommen. Nun weiß ich nicht wie ich das Programm verändern muss und es auf den mikrocontoller bekomme. Ich habe mal den Assembler-Code angehängt. Da ist noch eine weitere Datei mit dem Namen 2313def.inc! Durch welche muss ich diese ersetzen? Wäre für Hilfe von euch sehr Dankbar. Habe nur leider sehr wenig Ahnung von Microcontrollern. Grüße Timon
Timon wrote: > Hallo, > ich habe ein kleines Problem mit einer Lüftersteuerugs-Schaltung aus dem > Web. Die Lüftersteuerung wird mit einem Atmel AT 90S2313 betrieben. Ich > habe aber nur den Nachfolger, den Attiny 2313 bekommen. Nun weiß ich > nicht wie ich das Programm verändern muss und es auf den mikrocontoller > bekomme. Schau mal da: http://www.atmel.com/dyn/resources/prod_documents/doc4298.pdf Da steht eigentlich alles drin, was man wissen muss. > Ich habe mal den Assembler-Code angehängt. Und wo? > Da ist noch eine > weitere Datei mit dem Namen 2313def.inc! Durch welche muss ich diese > ersetzen? Durch die tn2313def.inc.
sry hier ist er:
1 | ; ##################################################################### |
2 | ; ### Lüfterregelung 1.0 07/2004 (c) Uwe Freese ### |
3 | ; ### http://www.uwe-freese.de mail@uwe-freese.de ### |
4 | ; ### ### |
5 | ; ### You can use this program freely, but please always include ### |
6 | ; ### this copyright information when you share it. ### |
7 | ; ### ### |
8 | ; ### Diese Software kann frei verwendet werden, aber bitte immer ### |
9 | ; ### diesen Copyright-Hinweis hinzufügen, wenn es weitergegeben ### |
10 | ; ### wird! ### |
11 | ; ##################################################################### |
12 | |
13 | .CSEG |
14 | .ORG 0x00 |
15 | |
16 | .include "2313def.inc" |
17 | |
18 | ; ------------------ Diese Werte dürfen geändert werden ------------------ |
19 | |
20 | .equ MotorThrMIN = 40 ; min. Lüfterleistung x/255 (im Bereich 1..254) |
21 | ; Muss kleiner als MotorThrMAX sein. So einstellen, dass der Motor bei dem Wert nicht stehenbleibt. |
22 | .equ MotorThrMAX = 254 ; max. Lüfterleistung x/255 (im Bereich 1..254) |
23 | .equ MotorThrSTART = 150 ; Lüfterleistung am Anfang x/255 |
24 | .equ anatest_every = 60 ; alle x Schleifendurchgänge nur Temperatur messen |
25 | ; ein Schleifendurchgang dauert ca. 43,5 ms |
26 | ; bei Wert von 150 also Messung alle 6,5 s |
27 | ; damit dauert einmal komplett herunter (Maximal- zu Minimaldrehzahl) ca. 12,6 Min. |
28 | ; damit dauert einmal komplett herauf (Minimal- zu Maximaldrehzahl) ca. 5 Min. |
29 | ; Der Wert ist abhängig vom verwendeten Lüfter. Bei einem Lüfter mit hoher Luftleistung z.B. 200 nehmen. |
30 | ; bei einem Lüfter mit niedriger Luftleistung (Papst 4412F/GL) niedrigen Wert nehmen (80). |
31 | .equ STARTUPDELAY = 60 ; Wie lange am Anfang Motor komplett einschalten? (x * 50 ms) |
32 | |
33 | ; ------------------ Für die Regelung irrelevante Werte (dürfen geändert werden) ------------------ |
34 | |
35 | .equ LEDBLINK_LOOPVAL = 7 ; in welchem Rythmus blinken (Taktverhältnis LEDBLINK_LOOPVAL/LEDBLINK_LOOPVALMAX) |
36 | .equ LEDBLINK_LOOPVALMAX = 14 ; in welchem Rythmus blinken (Taktverhältnis LEDBLINK_LOOPVAL/LEDBLINK_LOOPVALMAX) |
37 | .equ LEDBLINKQUICK_LOOPVAL = 2 ; in welchem Rythmus blinken (Taktverhältnis LEDBLINKQUICK_LOOPVAL/LEDBLINKQUICK_LOOPVALMAX) |
38 | .equ LEDBLINKQUICK_LOOPVALMAX = 4 ; in welchem Rythmus blinken (Taktverhältnis LEDBLINKQUICK_LOOPVAL/LEDBLINKQUICK_LOOPVALMAX) |
39 | |
40 | ; ------------------ Folgende Werte möglichst nicht ändern ------------------ |
41 | |
42 | ;Port B pins |
43 | .equ AIN0 = 0 |
44 | .equ AIN1 = 1 |
45 | .equ MOTOR = 5 |
46 | |
47 | ; Bargraph: |
48 | ; 0-6 ist PortD Pin 0-6 |
49 | ; 7-8 ist PortB Pin 2-3 |
50 | |
51 | ;Belegung PortD |
52 | ; Pin 0 = LED 0 (Bargraph) |
53 | ; Pin 1 = LED 1 (Bargraph) |
54 | ; Pin 2 = LED 2 (Bargraph) |
55 | ; Pin 3 = LED 3 (Bargraph) |
56 | ; Pin 4 = LED 4 (Bargraph) |
57 | ; Pin 5 = LED 5 (Bargraph) |
58 | ; Pin 6 = LED 6 (Bargraph) |
59 | |
60 | ;Belegung PortB |
61 | ; Pin 0 = AIN0 |
62 | ; Pin 1 = AIN1 |
63 | ; Pin 2 = LED 7 (Bargraph) |
64 | ; Pin 3 = LED 8 (Bargraph) |
65 | ; Pin 4 = LED 9 (Bargraph) (ROT) |
66 | ; Pin 5 = Motor-Ausgang |
67 | ; Pin 6 = Temperatur-Test Pin 0 (Standard = aus) |
68 | ; Pin 7 = Temperatur-Test Pin 1 (Standard = ein) |
69 | |
70 | ; Temperatur-Test-Pins |
71 | ; normale Einstellung ist: Pin 0 ein, Pin 1 aus |
72 | ; durch Schalten von beiden Pins auf aus, kann überprüft werden, ob die Temperatur gerade "stark" fällt |
73 | ; durch Schalten von beiden Pins auf ein, kann überprüft werden, ob die Temperatur gerade "stark" steigt |
74 | |
75 | ; Werte, ab denen die LEDs an sind |
76 | .equ LED0_on_if_higher = 23 |
77 | .equ LED1_on_if_higher = 46 |
78 | .equ LED2_on_if_higher = 70 |
79 | .equ LED3_on_if_higher = 93 |
80 | .equ LED4_on_if_higher = 116 |
81 | .equ LED5_on_if_higher = 139 |
82 | .equ LED6_on_if_higher = 162 |
83 | .equ LED7_on_if_higher = 185 |
84 | .equ LED8_on_if_higher = 209 |
85 | .equ LED9_on_if_higher = 232 |
86 | |
87 | .def temp = r16 ; allgemein verwendbare temp-Variable |
88 | .def temp2 = r17 ; Level zur Anzeige von Geschwindigkeit für 10 LEDs (0..10) |
89 | .def mydelay = r18 |
90 | .def startuploopcounter = r19 |
91 | .def motorloopcounter = r20 ; Motor-Schleifenzähler |
92 | .def MotorThr = r21 ; momentaner Wert, bis zu dem Motor ein ist |
93 | .def anatest_loop = r22 |
94 | .def history = r23 ; von den letzten 8 Messungen abspeichern, ob current_motor_thr |
95 | ; erhöht (1) oder erniedrigt (0) wurde |
96 | .def history_quick = r24 ; von den letzten 8 Messungen abspeichern, ob current_motor_thr |
97 | ; schnell erhöht/erniedrigt (1) oder nur normal erhöht/erniedrigt wurde (0) |
98 | .def LED_loop = r25 |
99 | .def LED0_on = r26 |
100 | .def LED9_on = r27 |
101 | .def ledblink_loopval_current = r28 ; für tatsächliches Blinkverhalten verwendet (abhängig von Temp-Differenz stark/schwach) |
102 | .def ledblink_loopvalmax_current = r29 ; für tatsächliches Blinkverhalten verwendet (abhängig von Temp-Differenz stark/schwach) |
103 | |
104 | ; --------- Initialisierung --------- |
105 | |
106 | ; Stack initialisieren |
107 | ldi temp, 0xB5; RAMEND == 0xDF |
108 | out SPL, temp |
109 | |
110 | ; Watchdog einschalten |
111 | ldi temp, 0b00001111 |
112 | out WDTCR, temp |
113 | |
114 | ; Rest |
115 | ldi LED0_on,0 |
116 | ldi LED9_on,0 |
117 | ldi LED_loop, LEDBLINK_LOOPVALMAX |
118 | ldi anatest_loop,1 ; gleich nach Start die erste Messung machen |
119 | |
120 | |
121 | ldi temp,0b11111100 ; initialise port B as I/O, 6 OUT 2 IN |
122 | out DDRB,temp |
123 | |
124 | ldi temp,0b00101111 ; key columns all low and |
125 | out PORTB,temp ; active pull ups on rows enabled |
126 | |
127 | ldi temp,0b01111111 ; initialise port D as I/O, 7 OUT |
128 | out DDRD,temp |
129 | |
130 | rcall RESET_HIGH_TEMP_DIFF_PINS |
131 | |
132 | ; damit der Motor anläuft 5 Sek. einschalten |
133 | ldi temp,0b01111111 ; alle LEDs an PORT D |
134 | out PORTD,temp |
135 | sbi PORTB,2 ; LED an Port B |
136 | sbi PORTB,3 ; LED an Port B |
137 | sbi PORTB,4 ; LED an Port B |
138 | |
139 | ldi MotorThr,MotorThrMAX ; volle Drehzahl |
140 | rcall STARTUPLOOP ; 3 sec Motor komplett einschalten |
141 | |
142 | |
143 | ; history mit "normal höher" oder "normal niedriger" füllen, damit auch gleich PRO_ADJUST anspringen kann, wenn es stark unterschiedlich ist. |
144 | ldi history_quick,0b00000000; clear history |
145 | sbic ACSR,ACO ; skip next instruction if output is low |
146 | rjmp INIT_HOEHER |
147 | ldi history,0b00000000 ; clear history |
148 | rjmp MOTOR_SLOWDOWN |
149 | |
150 | INIT_HOEHER: |
151 | ldi history,0b11111111 ; clear history |
152 | |
153 | ; Motor langsam von Maximalwert auf Default stellen |
154 | MOTOR_SLOWDOWN: |
155 | subi MotorThr,3 ; mit 3-facher Geschwindigkeit herunterregeln (ergibt etwa 2-3 Sek für's Herunterregeln) |
156 | rcall BARGRAPH |
157 | rcall MOTORLOOP |
158 | cpi MotorThr,MotorThrSTART ; schon auf Defaultwert? |
159 | brlo MAINLOOP ; dann nicht verringern |
160 | rjmp MOTOR_SLOWDOWN |
161 | |
162 | |
163 | |
164 | |
165 | |
166 | |
167 | |
168 | |
169 | |
170 | MAINLOOP: |
171 | |
172 | ; --------- Spannung vergleichen --------- |
173 | rcall MOTORLOOP |
174 | rcall LEDBLINK |
175 | |
176 | ; nur von Zeit zu Zeit einen anatest machen |
177 | dec anatest_loop |
178 | cpi anatest_loop,0 |
179 | brne MAINLOOP |
180 | |
181 | ldi anatest_loop,anatest_every |
182 | lsl history ; Platz in History schaffen (Bit 0 auf 0) |
183 | lsl history_quick ; Platz in History schaffen (Bit 0 auf 0) |
184 | ldi ledblink_loopval_current, LEDBLINK_LOOPVAL ; Blinkwerte auf Standard |
185 | ldi ledblink_loopvalmax_current, LEDBLINK_LOOPVALMAX ; Blinkwerte auf Standard |
186 | |
187 | sbic ACSR,ACO ; skip next instruction if output is low |
188 | rjmp HOEHER |
189 | |
190 | ; Ist-Temperatur stark höher -> MotorThr um 5 erhöhen |
191 | ; Ist-Temperatur normal höher -> MotorThr um 1 erhöhen |
192 | ; Ist-Temperatur stark niedriger -> MotorThr um 2 verringern |
193 | ; Ist-Temperatur normal niedriger -> MotorThr um 1 verringern |
194 | |
195 | NIEDRIGER: |
196 | ; Auswertung, ob "stark fallend" |
197 | ; Wenn Temperatur fallend, dann hat Temp.fühler höheren Widerstand. Spannung an AIN2 ist dann höher. |
198 | ; Jetzt also Spannung an AIN1 auch höher machen, um zu sehen, ob sie dann an AIN2 immer noch höher ist. |
199 | ; Spannung an AIN1 wird erhöht, in dem Temp 0 auch EINgeschaltet wird. |
200 | sbi PORTB, 6 |
201 | rcall MY_DELAY ; ca 1 ms warten, damit die Spannung sich anpasst, falls Kapazitäten |
202 | rcall MY_DELAY |
203 | rcall MY_DELAY |
204 | rcall MY_DELAY |
205 | rcall MY_DELAY |
206 | |
207 | sbic ACSR,ACO ; skip next instruction if output is high |
208 | rjmp NIEDRIGER_NORMAL |
209 | |
210 | NIEDRIGER_STARK: |
211 | sbr history_quick,1 ; setze Bit 0 auf 1 in history_quick |
212 | ldi ledblink_loopval_current, LEDBLINKQUICK_LOOPVAL ; Blinkwerte auf schnell-blinkend |
213 | ldi ledblink_loopvalmax_current, LEDBLINKQUICK_LOOPVALMAX ; Blinkwerte auf schnell-blinkend |
214 | rcall DEC_MOTORTHR |
215 | NIEDRIGER_NORMAL: |
216 | rcall DEC_MOTORTHR |
217 | rjmp HISTORY ; und springe dann zu HISTORY |
218 | |
219 | HOEHER: |
220 | sbr history,1 ; setze Bit 0 auf 1 in history |
221 | ; Auswertung, ob "stark steigend" |
222 | ; Wenn Temperatur steigend, dann hat Temp.fühler niedrigeren Widerstand. Spannung an AIN2 ist dann niedriger. |
223 | ; Jetzt also Spannung an AIN1 auch niedriger machen, um zu sehen, ob sie an AIN2 dann immer noch niedriger ist. |
224 | ; Spannung an AIN1 wird erniedrigt, in dem Temp 1 auch AUSgeschaltet wird. |
225 | cbi PORTB, 7 |
226 | rcall MY_DELAY ; ca 1 ms warten, damit die Spannung sich anpasst, falls Kapazitäten |
227 | rcall MY_DELAY |
228 | rcall MY_DELAY |
229 | rcall MY_DELAY |
230 | rcall MY_DELAY |
231 | |
232 | sbis ACSR,ACO ; skip next instruction if output is low |
233 | rjmp HOEHER_NORMAL |
234 | |
235 | HOEHER_STARK: |
236 | sbr history_quick,1 ; setze Bit 0 auf 1 in history_quick |
237 | ldi ledblink_loopval_current, LEDBLINKQUICK_LOOPVAL ; Blinkwerte auf schnell-blinkend |
238 | ldi ledblink_loopvalmax_current, LEDBLINKQUICK_LOOPVALMAX ; Blinkwerte auf schnell-blinkend |
239 | rcall INC_MOTORTHR |
240 | rcall INC_MOTORTHR |
241 | rcall INC_MOTORTHR |
242 | rcall INC_MOTORTHR |
243 | HOEHER_NORMAL: |
244 | rcall INC_MOTORTHR |
245 | |
246 | ; --------- History-Auswertung --------- |
247 | |
248 | HISTORY: |
249 | ; zunächst HighTempDiff-Pins wieder auf Normalzustand |
250 | rcall RESET_HIGH_TEMP_DIFF_PINS |
251 | |
252 | ldi LED0_on,0 ; LED 0 Blinkmodus AUS (default) |
253 | ldi LED9_on,0 ; LED 10 Blinkmodus AUS (default) |
254 | |
255 | mov temp,history |
256 | andi temp,0b01111111 ; letzte 7 Bits betrachten |
257 | cpi temp,0b01111111 ; wenn alle 6 Bits EIN |
258 | breq LEVEL_HOCH |
259 | rjmp LEVEL_WEITER |
260 | |
261 | LEVEL_HOCH: |
262 | ldi LED9_on,1 ; LED 10 EIN |
263 | rjmp HISTORY_END |
264 | |
265 | LEVEL_WEITER: |
266 | mov temp,history |
267 | andi temp,0b01111111 ; letzte 7 Bits betrachten |
268 | cpi temp,0b00000000 ; wenn alle 6 Bits AUS |
269 | breq LEVEL_RUNTER |
270 | rjmp HISTORY_END |
271 | LEVEL_RUNTER: |
272 | ldi LED0_on,1 ; LED 0 EIN |
273 | |
274 | HISTORY_END: |
275 | rcall BARGRAPH |
276 | rjmp MAINLOOP |
277 | |
278 | ; ---------- ENDE ----------- |
279 | |
280 | |
281 | |
282 | |
283 | |
284 | |
285 | |
286 | ; --------- Bargraph-Anzeige --------- |
287 | |
288 | BARGRAPH: |
289 | ; Anzahl LEDs = (MotorThr - MotorThrMIN) / 20 |
290 | ; dadurch max = (254 - 25) / 24 = 9,6 |
291 | ; dadurch min = (25 - 25) / 24 = 0 |
292 | BARGRAPH_LEDCHECK0: |
293 | ; Test, ob LED0 gerade blinkt (dann nichts ändern) |
294 | cpi LED0_on,0 |
295 | brne BARGRAPH_LEDCHECK1 |
296 | ; normaler Check (wie bei anderen LEDs) |
297 | cbi PORTD,0 |
298 | cpi MotorThr,LED0_on_if_higher |
299 | brlo BARGRAPH_LEDCHECK1 |
300 | sbi PORTD,0 |
301 | BARGRAPH_LEDCHECK1: |
302 | cbi PORTD,1 |
303 | cpi MotorThr,LED1_on_if_higher |
304 | brlo BARGRAPH_LEDCHECK2 |
305 | sbi PORTD,1 |
306 | BARGRAPH_LEDCHECK2: |
307 | cbi PORTD,2 |
308 | cpi MotorThr,LED2_on_if_higher |
309 | brlo BARGRAPH_LEDCHECK3 |
310 | sbi PORTD,2 |
311 | BARGRAPH_LEDCHECK3: |
312 | cbi PORTD,3 |
313 | cpi MotorThr,LED3_on_if_higher |
314 | brlo BARGRAPH_LEDCHECK4 |
315 | sbi PORTD,3 |
316 | BARGRAPH_LEDCHECK4: |
317 | cbi PORTD,4 |
318 | cpi MotorThr,LED4_on_if_higher |
319 | brlo BARGRAPH_LEDCHECK5 |
320 | sbi PORTD,4 |
321 | BARGRAPH_LEDCHECK5: |
322 | cbi PORTD,5 |
323 | cpi MotorThr,LED5_on_if_higher |
324 | brlo BARGRAPH_LEDCHECK6 |
325 | sbi PORTD,5 |
326 | BARGRAPH_LEDCHECK6: |
327 | cbi PORTD,6 |
328 | cpi MotorThr,LED6_on_if_higher |
329 | brlo BARGRAPH_LEDCHECK7 |
330 | sbi PORTD,6 |
331 | BARGRAPH_LEDCHECK7: |
332 | cbi PORTB,2 |
333 | cpi MotorThr,LED7_on_if_higher |
334 | brlo BARGRAPH_LEDCHECK8 |
335 | sbi PORTB,2 |
336 | BARGRAPH_LEDCHECK8: |
337 | cbi PORTB,3 |
338 | cpi MotorThr,LED8_on_if_higher |
339 | brlo BARGRAPH_LEDCHECK9 |
340 | sbi PORTB,3 |
341 | BARGRAPH_LEDCHECK9: |
342 | ; Test, ob LED9 gerade blinkt (dann nichts ändern) |
343 | cpi LED9_on,0 |
344 | brne BARGRAPH_LEDCHECK10 |
345 | ; normaler Check (wie bei anderen LEDs) |
346 | cbi PORTB,4 |
347 | cpi MotorThr,LED9_on_if_higher |
348 | brlo BARGRAPH_LEDCHECK10 |
349 | sbi PORTB,4 |
350 | BARGRAPH_LEDCHECK10: |
351 | ret |
352 | |
353 | |
354 | |
355 | ; MotorThr erhöhen |
356 | INC_MOTORTHR: |
357 | cpi MotorThr,MotorThrMAX ; wenn schon Maximalwert |
358 | breq INC_MOTORTHR_RET ; dann nicht erhöhen |
359 | inc MotorThr ; sonst erhöhe Wert |
360 | INC_MOTORTHR_RET: |
361 | ret |
362 | |
363 | ; MotorThr verringern |
364 | DEC_MOTORTHR: |
365 | cpi MotorThr,MotorThrMIN ; wenn schon Minimalwert |
366 | breq DEC_MOTORTHR_RET ; dann nicht verringern |
367 | dec MotorThr ; sonst verkleinere Wert |
368 | DEC_MOTORTHR_RET: |
369 | ret |
370 | |
371 | ; TempDiff-Pins auf Standard setzen |
372 | RESET_HIGH_TEMP_DIFF_PINS: |
373 | cbi PORTB, 6 |
374 | sbi PORTB, 7 |
375 | ret |
376 | |
377 | |
378 | |
379 | MOTORLOOP: ; Dauer ca. 90 ms |
380 | ;von current_motor_thr bis 0 runterzählen |
381 | mov motorloopcounter,MotorThr |
382 | sbi PORTB,MOTOR ; Motor ein |
383 | MOTORLOOP_EIN: |
384 | rcall MY_DELAY |
385 | dec motorloopcounter |
386 | brne MOTORLOOP_EIN |
387 | |
388 | cbi PORTB,MOTOR ; Motor aus |
389 | |
390 | ; von (255-current_motor_thr) bis 0 runterzählen und Motor aus |
391 | ldi motorloopcounter,255 |
392 | sub motorloopcounter,MotorThr |
393 | MOTORLOOP_AUS: |
394 | rcall MY_DELAY |
395 | dec motorloopcounter |
396 | brne MOTORLOOP_AUS |
397 | |
398 | ret |
399 | |
400 | |
401 | |
402 | |
403 | |
404 | LEDBLINK: |
405 | ; Schleifenzähler immer modulo 256 zählen |
406 | dec LED_loop |
407 | brne LED0BLINK ; ist = 0? |
408 | |
409 | ; LED_loop zurücksetzen. Dabei high_temp_diff beachten. |
410 | mov LED_loop, ledblink_loopvalmax_current |
411 | |
412 | LED0BLINK: |
413 | cpi LED0_on,0 ; Test, ob Blinken (LED 0 für "Temperatur runter") überhaupt erwünscht |
414 | breq LED9BLINK |
415 | |
416 | ; LED einschalten? |
417 | cp LED_loop, ledblink_loopval_current |
418 | brlo LED0_EIN |
419 | |
420 | LED0_AUS: |
421 | cbi PORTD,0 |
422 | rjmp LED9BLINK |
423 | LED0_EIN: |
424 | sbi PORTD,0 |
425 | |
426 | LED9BLINK: |
427 | cpi LED9_on,0 ; Test, ob Blinken (LED 9 für "Temperatur rauf") überhaupt erwünscht |
428 | breq LEDBLINK_ENDE |
429 | |
430 | ; LED einschalten? |
431 | cp LED_loop, ledblink_loopval_current |
432 | brlo LED9_EIN |
433 | |
434 | LED9_AUS: |
435 | cbi PORTB,4 |
436 | rjmp LEDBLINK_ENDE |
437 | LED9_EIN: |
438 | sbi PORTB,4 |
439 | |
440 | LEDBLINK_ENDE: |
441 | ret |
442 | |
443 | |
444 | |
445 | |
446 | |
447 | MY_DELAY: ; Dauer: 193,25 us |
448 | wdr ; Watchdog zurücksetzen |
449 | ldi mydelay,255 |
450 | MY_DELAY_LOOP: |
451 | dec mydelay |
452 | brne MY_DELAY_LOOP |
453 | |
454 | ret |
455 | |
456 | STARTUPLOOP: |
457 | ldi startuploopcounter,STARTUPDELAY |
458 | STARTUPLOOP_INNER: |
459 | rcall MOTORLOOP |
460 | dec startuploopcounter |
461 | brne STARTUPLOOP_INNER |
462 | |
463 | ret |
und womit kann ich den programmieren? irgendwie über den parralel Port? mit welchen programmen? und welchem adapter?
wenn ich das hier nachbaue: http://s-huehn.de/elektronik/avr-prog/avr-parallel.gif http://s-huehn.de/elektronik/avr-prog/avr-test1.gif muss ich dann nur noch die anschlüße an den ic anschließen und für die spannung von 5v sorgen? weil der attiny 2313 hat einen internen quarz oder?
Timon wrote: > muss ich dann nur noch die anschlüße an den ic anschließen > und für die spannung von 5v sorgen? Im Prinzip ja. > weil der attiny 2313 hat einen internen quarz oder? Nein, der hat einen internen RC-Oszillator und keinen Quarz. Er kann aber ohne einen externen Quarz o.ä. betrieben und programmiert werden, falls Du darauf hinauswolltest.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.