PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Atmega8: Spannungswert an LED-Reihe ausgeben.



Sascha P.
27.02.2007, 11:38
Hallo zusammen!
Fange gerade mit dem Programmieren an.
Hab mal ne Frage:
Ich will einen Spannungswert an eine LED-Zeile ausgeben...
Habe folgenden Code gefunden, funktioniert soweit auch prima.
Wie stelle ich es an das ich noch mehr leds anschließen kann?
Z.B. an Port D.

#include <avr/io.h>

double Leds[] =
{ 0b00000000000,
0b00000000001,
0b00000000011,
0b00000000111,
0b00000001111,
0b00000011111,
0b00000111111,
0b00001111111,
0b00011111111,
0b00100000000,

};

FACT =( ( 1024 / ( sizeof( Leds ) / sizeof(*Leds) ) ) + 1 );

int main()
{
int Value = 0;

DDRB = 0xFF;
ADCSRA = ( 1 << ADEN ) | ( 1 << ADPS2 ) | ( 1 << ADPS1 );
ADMUX = ( 1 << MUX0 );

ADCSRA |= ( 1 << ADSC );
while( ADCSRA & ( 1 << ADSC ) )
;

while( 1 )
{
ADCSRA |= ( 1 << ADSC );
while( ADCSRA & ( 1 << ADSC ) )
;

Value = ADC;
PORTB = Leds[ Value / FACT ];

}
}

Mfg
Sascha P.

bL1nK
27.02.2007, 12:56
anderen PORT nehmen? nimmst halt noch PORTC oder kA mit dazu, je nachdem was du noch zur verfügung hast.

Sascha P.
27.02.2007, 13:19
Ja klar...aber wie muss ich den Quelltext verändern?

bL1nK
27.02.2007, 17:27
hier wie was? copy & paste, oder was? musst halt was einfügen :P

definierst einfach noch PORTD als ausgang und machst ne unterscheidung beim ADC und setzt je nach dem die einzelen PINs high.