der adc hat nicht festgelegt, dass 1023 = 5V
Schade eigentlich...
dies kann man mithilfe einer extern anzulegenden vergleichsspannung einstellen, ausserdem kann der prozessor selbst eine exakte spanung von 2,56V intern generieren. dieser zählt dann glaube ich als "256".
Sorry, aber den Satz verstehe ich inhaltlich nicht so ganz. Was ist das für Vergleichsspannung und wo kommt die her? Und wozu kann der Prozessor 2,56V generieren?
due batteriespannung ist ausserdim etwa 6V, aber wird durch die große diode um etwa 0,7V heruntergeregelt.
Achso, okay!
mit pollswitch fragt man nicht alle taster ab. sondern man startet den analog-digital-wandler =)
jeder taster ist mit einem widerstand verbunden. dabei ist der wert, den pollswitch zurückgibt, die SUMME aller taster. die taster haben folgende werte:
Taster1: 1
Taster2: 2
Taster3: 4
Taster4: 8
Taster5: 16
Taster6: 32
Wenn Pollswitch also "16" zurückgibt, dann ist taster 5 gedrückt. wenn pollswitch "44" zueück gibt, dann sind die taster 6,4,3 gedrückt.
für jede zurückgegebene zahl gib es ur eine mögliche tasterkombination.
Juhu, das habe ich verstanden.
Allerdings macht mir trotzdem eines meiner Übungsprogramme Probleme.
Was ist hier dran falsch:
Code:
#include "asuro.h"
int main(void)
{
Init();
while(1)
{
if (PollSwitch()==1)
{
StatusLED(YELLOW);
BackLED(OFF,OFF);
FrontLED(OFF);
}
else if (PollSwitch()==2)
{
StatusLED(RED);
BackLED(OFF,OFF);
FrontLED(OFF);
}
else if (PollSwitch()==4)
{
BackLED(ON,OFF);
FrontLED(OFF);
}
else if (PollSwitch()==8)
{
BackLED(OFF,ON);
FrontLED(OFF);
}
else if (PollSwitch()==16)
{
BackLED(ON,ON);
FrontLED(OFF);
}
else if (PollSwitch()==32)
{
BackLED(OFF,OFF);
FrontLED(ON);
}
else StatusLED(GREEN);
}
return 0;
}
Hier soll bei einem bestimmten Tastendruck eine bestimmte LED leuchten, aber da gibt´s zwischendurch immer Probleme. Die StatusLED Anweisungen laufen sauber, aber wenn ich zB Taster3 drücke und danach Taster4 verändert sich gar nichts. Es wäre nett, wenn ihr da mal kurz drüber gucken könntet.
die asuro adcs haben 10 bit, man kann aber auch nur 8 bit auslesen wenn man will. dann ist der wert nicht so genau, er geht nur von 0 bis 255. das reicht oftmal aus.
Habe, ich glaube ich auch verstanden.
Aber jetzt muss ich noch mal kurz genauer nachfragen:
Also wenn dem ADC zum Beispiel über die Taster eine Spannung zugeführt wird, was macht er dann damit? Wandelt er dass dann in einen Wert zwischen 0 und 1023 um, oder läuft die Sache anders.
Vielen Dank
jawo3
PS: Ich komme mir irgendwie so unwissend vor, aber jeder wird ja hoffentlich mal so angefangen haben, oder
Lesezeichen