PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ADC(Analog Digital Converter) in C auslesen



seitenmaster
01.06.2005, 10:01
Hi, wie ich hier schon öfter gelesen habe gibt es in Basic die möglichkeit die ADC-Ports, für z.B. eine Spannungsmessung mit getadc(x) oder sowas in der Richtung auszulesen, wie geht denn das in C?

seitenmaster
01.06.2005, 10:58
Hab selbst was gefunden :-)
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Analoge_Ein-_und_Ausgabe

seitenmaster
01.06.2005, 12:51
Ich brächte doch nocht etwas Hilfe dazu. Z.B. muss laut text zum einschalten des ADC Bit 7 von Port C (ADEN) gesetzt werden, allerdings gibt es bei meiner Bauform (DIL) kein Bit 7, sondern lediglich 0 bis 5. Wo ist bei mir dieses Bit?

Arexx-Henk
01.06.2005, 13:57
Hallo,


zum einschalten des ADC Bit 7 von Port C (ADEN) gesetzt werden

Z.B. Beim Atmega16 ist ADEN bit 7 vom ADCSRA register und ist nicht teil vom Port C. Vielleicht ist hier ein irrtum?

gruss

Henk

seitenmaster
01.06.2005, 14:24
Hmm...
mal was anderes...
was genau macht das im C Quelltext?
(1<<ADEN)

oder das

|=

Arexx-Henk
01.06.2005, 16:43
Hallo,

ADEN ist gleich wie decimal 7 (dass komt von bit 7)

(1<<ADEN) ist gleich wie (1<<7), heisst schieb die 1 ('eins' oder (hex) 0x01, oder (binair) '0000 0001') 7 mahl nach links.
daraus komt: (binair) '1000 0000' oder (hex 0x80) oder (decimal) 128

ander beispiel:
(1<<0) = '0000 0001'
(1<<3) = '0000 1000'
(2<<1) = '0000 0100'
(3<<1) = '0000 0110'

'|=' ist gleich wie 'ist oder'

a |= 4 ist gleich wie a = a | 4 ist gleich wie a = a oder 4

z.B. wenn a = 2 denn a|=4 ist gleich wie a=2 oder 4

0000 0010 = 2
0000 0100 = 4
------------ oder
0000 0110 = 6

a|=4 ist gleich wie 6


gruss

Henk