Mr. Teflon schrieb am 11.August.2009, 11:12:13 in der Kategorie pc.coding
...
#define uint unsigned int // Abkürzungen
#define uchar unsigned char
...
// **************************** AD-Wandler INput In: Kanal 0...7 Out: Wert 0...1023
uint ad_in(uchar ch)
{
adcon0 = 0x80 + ch; // Port P0 Gruppe Kanal 0 - 7
// 1000 0ccc AD control register 0
// 1 CKS0 Frequency select bit 0 fAD/2
// 0 ADST A/D conversion start disabled
// 0 reserved
// 0 ADGSEL0 input group select AN0...AN7
// 0 MD mode select one-shot
// Chx Channel
adcon1 = 0x28; // 10-bit mode
// 0010 1000 AD control register 1
// 00 reserved
// 1 VCUT Vref connect is connected
// 0 CKS1 Frequency select CKS0 selected
// 1 BITS 10-bit mode
// 00 reserved
adst = 1; // Conversion start
// bit 6 von adcon0
while (adst == 1){} // Wait A/D conversion
return ad; // AD value
}
Nachdem was ich von Euch gelernt habe wird dieser Funktion eine Vorzeichenlose char Variable (0 ... 255) übergeben, die Kanalnummer, die A/D Abfrage/Wandlung beginnt und am Ende wird eine Zahl zwischen 0 ... 1023 der Variablen ad übergeben zur Weiternutzung im Programm. Richtig?
Die Variable ad wird aber nirgens deklariert. ???