PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Neues Unterforum: "c"



Speedking
29.06.2006, 20:36
Hallo Forum,

super Idee, eine "c"-Ecke einzurichten. Vor allem für Controller-Anfänger wie ich einer bin.

Ich habe einige kleine Schnipsel für die c-Programmierung des RN-Control-Boards fertig.

Das heir ist eine Funktion zur Tastenabfrage. Da das Board "nur" einen Eingang (PORT-A, PIN-7) verwendet, werden heir analoge Werte mit einem Spannungsteiler, der schon auf dem Board sitzt, ermittelt und ausgewertet.



// Tastenabfrage (eine Taste...)
uint8_t RN_Control_Board::Taste(void)
{
uint8_t Tastennummer= 0;
uint16_t ad_wert = 0;

admux = 7; // Input-Pin: Taste ist an PA7 angeschlossen
cbi(ADCSRA, ADFR); // single-Wandlung
cbi(ADMUX, ADLAR); // left adjust ist nicht aktiv
sbi(ADCSRA, ADEN); // ADC enable

sbi(ADCSRA, ADSC); // A/D-Wanldung starten
while (ADCSRA & 64); // auf 0 warten, dann ist Wandlung beendet

ad_wert = ADCW; // Low- und High-Byte in einem Schritt kopieren.
// In ad_wert steht jetzt der 10-Bit-A/D-Wert (0...1023)
if (ad_wert < 1010)
{
if((ad_wert >= 410) && (ad_wert <= 450) { Tastennummer = 1;}
if((ad_wert >= 340) && (ad_wert <= 380) { Tastennummer = 2;}
if((ad_wert >= 265) && (ad_wert <= 305) { Tastennummer = 3;}
if((ad_wert >= 180) && (ad_wert <= 220) { Tastennummer = 4;}
if((ad_wert >= 100) && (ad_wert <= 130) { Tastennummer = 5;}
}

return Tastennummer;
}

Ich hoffe, dass der Code richtig dargestellt wird. Wie macht man das hier denn ?

Also... wenn eine Taste gedrückt wird (eine von 5), dann wird per A/D-Wandler ein Wert ermittelt, der bei jeder Taste ein anderer ist. Als Rückgabewert wird dann die Tastennummer 1 bis 5 ausgegeben. Ist keine Taste gedrückt, dann wird 0 zurückgegeben.

Eventuell ist ja eine schlauere Lösung im Umlauf.

Bis denn... Klaus

Naja.... Ich werde noch andere Listings posten....

HannoHupmann
03.07.2006, 10:13
Sers Speedking

https://www.roboternetz.de/phpBB2/viewtopic.php?t=20903

Hier wird die neue Unterforumfrage geklärt und entschieden welche neuen Unterforen es geben soll und welche wieder gestrichen werden.

HannoHupmann
03.07.2006, 10:13
Sers Speedking

https://www.roboternetz.de/phpBB2/viewtopic.php?t=20903

Hier wird die neue Unterforumfrage geklärt und entschieden welche neuen Unterforen es geben soll und welche wieder gestrichen werden.