atmega comparator code & beschaltung

Gast #1455084
Lesenswert?

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
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren