Tag zusammen,
ich wollte aus Spaß mal eine LED ein wenig ausreizen.
Dazu wird eine PWM mit 0.1ms Pulsbreite und einem Tastverhältnis von
1/10 benötigt. Habe alles soweit eingestellt, nur kann ich das Ergebnis
nicht überprüfen. Daher die Frage ob es in etwa (ein paar Prozent
Abweichung sind mir egal) stimmt.
1 | /*
|
2 | * ATTiny13A_PWM_Pulse_LED25000WS.c
|
3 | Fuses: HIGH = 0xFF LOW = 0x7A
|
4 | */
|
5 |
|
6 | #define F_CPU 2400000UL
|
7 | #define LED01 PB0
|
8 |
|
9 | #include <avr/io.h>
|
10 | #include <avr/power.h>
|
11 |
|
12 | int main(void)
|
13 | {
|
14 | clock_prescale_set(clock_div_4); // 9,6 MHz
|
15 | DDRB |= ( 1 << LED01);
|
16 |
|
17 | //////////////////////////////////////////////////////////////////////////
|
18 | //PWM ( PB0 Pin 5 OCOA )
|
19 | TCCR0A |= ((1 << COM0A1) | ( 1 << WGM00) | ( 1 << WGM01)); // Clear OC0A on Compare Match, set OC0A at TOP, Fast PWM
|
20 | TCCR0B |= ( 1 << CS00); // Prescaler 1
|
21 | OCR0A = 26;
|
22 |
|
23 | while (1)
|
24 | {
|
25 | }
|
26 | }
|