Hier mal eine 16-Kanal PWM speziell für LEDs (logarithmische Kennlinie). Target ist ein ATtiny24, der steuert 2*TPIC6B595, damit man mehr Power hat. Damit der Interrupt schön schnell ist, muß man das USI nehmen. Erstmal ein einfaches Demo, die LEDs blenden nur ein und aus. Peter
Kannst du den Teil mit dem USI noch mal etwas genauer beschreiben?? Danke, egberto
egberto wrote:
> Kannst du den Teil mit dem USI noch mal etwas genauer beschreiben??
Ich machs exakt so, wie im Datenblatt beschrieben, Seite 119/120,
Abschnitt: "14.3.2 SPI Master Operation Example".
Sieht im Listing so aus:
1 | USIDR = ptr[PWM_STEPS]; // upper 8 LEDs |
2 | 184: 86 89 ldd r24, Z+22 ; 0x16 |
3 | 186: 8f b9 out 0x0f, r24 ; 15 |
4 | pulse_SCK(); |
5 | 188: 91 e1 ldi r25, 0x11 ; 17 |
6 | 18a: 9d b9 out 0x0d, r25 ; 13 |
7 | 18c: 83 e1 ldi r24, 0x13 ; 19 |
8 | 18e: 8d b9 out 0x0d, r24 ; 13 |
9 | pulse_SCK(); |
10 | 190: 9d b9 out 0x0d, r25 ; 13 |
11 | 192: 8d b9 out 0x0d, r24 ; 13 |
12 | pulse_SCK(); |
13 | 194: 9d b9 out 0x0d, r25 ; 13 |
14 | 196: 8d b9 out 0x0d, r24 ; 13 |
15 | pulse_SCK(); |
16 | 198: 9d b9 out 0x0d, r25 ; 13 |
17 | 19a: 8d b9 out 0x0d, r24 ; 13 |
18 | pulse_SCK(); |
19 | 19c: 9d b9 out 0x0d, r25 ; 13 |
20 | 19e: 8d b9 out 0x0d, r24 ; 13 |
21 | pulse_SCK(); |
22 | 1a0: 9d b9 out 0x0d, r25 ; 13 |
23 | 1a2: 8d b9 out 0x0d, r24 ; 13 |
24 | pulse_SCK(); |
25 | 1a4: 9d b9 out 0x0d, r25 ; 13 |
26 | 1a6: 8d b9 out 0x0d, r24 ; 13 |
27 | pulse_SCK(); |
28 | 1a8: 9d b9 out 0x0d, r25 ; 13 |
29 | 1aa: 8d b9 out 0x0d, r24 ; 13 |
Peter
Danke, schon etwas klarer - ich stehe halt mit diesem USI Zeugs ein bisschen auf Kriegsfuß..... Viele Grüße, egberto
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.