Morgen, habe das unten stehende Programm geschrieben und habe 0-5V im Eingang und 0-5V als PWM-Signal im Ausgang. Ich möchte jedoch ca. 1,8-5V am Ausgagng erhalten.Die Frage ist nun wie??Muss dazu sagen das ich Anfänger bin.
1 | include <avr/io.h> |
2 | #include <stdint.h> |
3 | |
4 | #include <avr/io.h> |
5 | #include <stdint.h> |
6 | |
7 | void adc_init(void) |
8 | {
|
9 | ADMUX = (1<<REFS0); |
10 | |
11 | ADCSRA = (1<<ADEN)|(1<<ADPS2)|(1<<ADPS1); |
12 | }
|
13 | void timer_init(void) |
14 | {
|
15 | DDRB = (1 << PB1 ); |
16 | |
17 | TCCR1A = (1<<COM1A1) | (1<<WGM11); |
18 | TCCR1B = (1<<WGM13) | (1<<WGM12) | (1<<CS10); |
19 | |
20 | ICR1 = 0x008F; |
21 | |
22 | }
|
23 | |
24 | int main() |
25 | {
|
26 | uint16_t buffer; |
27 | |
28 | timer_init(); |
29 | |
30 | adc_init(); |
31 | |
32 | OCR1A = 0x0000; |
33 | |
34 | |
35 | while( 1 ) |
36 | {
|
37 | ADCSRA |= (1<<ADSC); |
38 | |
39 | while ( !(ADCSRA & (1<<ADIF)) ) |
40 | ;
|
41 | |
42 | buffer = ADC; |
43 | |
44 | |
45 | OCR1A = (buffer>>3); |
46 | }
|
47 | }
|