So ich habe jetzt mal das Prgramm mit
DDRA |= ADC0; // Pin als Ausgang
PORTA |= ADC0; // Ausgang auf 1
PORTA &= ~ADC0; // Ausgang auf 0
DDRA &= ~ADC0; // Eingang
PORTA |= ADC0; // Pullup an
PORTA &= ~ADC0; // Pullup aus
geschrieben, das habe ich im Internet so gefunden. Mit DDRA &=~(1<<pa0) PORTA |=(1<<pa0) funktioniert es nicht, da kommt ein Fehler bei make.
Mein Programm sieht jetzt so aus:
#include "RP6RobotBaseLib.h"
int main(void)
{
DDRA &= ~ADC0; // Eingang
PORTA |= ADC0; // Pullup an
DDRA &= ~ADC1; // Eingang
PORTA |= ADC1; // Pullup an
initRobotBase();
startStopwatch1();
while(true)
{
if(getStopwatch1() > 300)
{
writeString_P("\nADC Akku: ");
writeInteger(adcBat, DEC);
writeString_P("\nADC ADC0 ");
writeInteger(adc0, DEC);
writeString_P("\nADC ADC1: ");
writeInteger(adc1, DEC);
writeChar('\n');
setStopwatch1(0);
}
task_ADC();
}
return 0;
}
Nun habe ich Schalter an ADC0 und ADC1 Angeschlossen (zwischen GND und ADC1 bzw. ADC0).
Wenn beide Schalter offen sind bekomme ich im Terminal jeweils einen Wert von ca. 350 Angezeigt - Ist das normal?
Wenn ich jetzt den Schalter an ADC1 Schließe geht ADC1 auf 0 und ADC0 bleibt bei 350.
Wenn ich dann den ADC0 Schalter Schließe geht ADC0 auf 0 aber ADC1 geht ebenfalls auf 0. Das ist nicht normal oder?
Lesezeichen