ich habe an meinen atmega pin ain0 eine referenzspannung angeschlossen
und an pin ain1 eine vergleichsspannung. nun wollte ich mit dem internen
comparator die spannungen vergleichen und mit folgendem code dies an den
ausgängen ersichtlich machen. aber es tut sich rein garnix, nach den
2sec led an, leuchten 2 led's (a0 und a2), also als ob vergleich nicht
zutreffent. wenn ich nun vergleichsspannung verändere egal drüber oder
drunter vom ref, passiert nix.
ist der code so richitg??????
sorry falls dumme fehler drin sind aber ist schon 1uhr :-)
1 | int main( void ) {
|
2 |
|
3 | DDRA = ( 1 << PA0 | 1 << PA1 | 1 << PA2);
|
4 | PORTA |= ( 1 << PA0 | 1 << PA1 | 1 << PA2);
|
5 | ACSR = ( 1 << ACI | 1 << ACIS1 | 1 << ACIS0 );
|
6 |
|
7 | PORTA &= ~( 1 << PA0 );
|
8 | PORTA &= ~( 1 << PA1 );
|
9 | PORTA &= ~( 1 << PA2 );
|
10 | _delay_ms ( 2000 );
|
11 | PORTA |= ( 1 << PA0 );
|
12 | PORTA |= ( 1 << PA1 );
|
13 | PORTA |= ( 1 << PA2 );
|
14 |
|
15 | while(1)
|
16 | {
|
17 | if(!(ACSR & (1<<ACI)))
|
18 | {
|
19 | PORTA &= ~( 1 << PA0 );
|
20 | PORTA |= ( 1 << PA1 );
|
21 | }
|
22 | else
|
23 | {
|
24 | PORTA &= ~( 1 << PA1 );
|
25 | PORTA |= ( 1 << PA0 );
|
26 | }
|
27 |
|
28 | if(!(ACSR & (1<<ACO)))
|
29 | {
|
30 | PORTA &= ~( 1 << PA2 );
|
31 | }
|
32 | else
|
33 | {
|
34 | PORTA |= ( 1 << PA2 );
|
35 | }
|
36 |
|
37 | }
|
38 | return 0;
|
39 | }
|