-         

Ergebnis 1 bis 3 von 3

Thema: Neues Unterforum: "c"

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    20.06.2006
    Beiträge
    9

    Neues Unterforum: "c"

    Anzeige

    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.

    Code:
    // 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....

  2. #2
    Moderator Robotik Einstein Avatar von HannoHupmann
    Registriert seit
    19.11.2005
    Ort
    München
    Alter
    34
    Beiträge
    4.528
    Blog-Einträge
    1
    Sers Speedking

    http://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.

  3. #3
    Moderator Robotik Einstein Avatar von HannoHupmann
    Registriert seit
    19.11.2005
    Ort
    München
    Alter
    34
    Beiträge
    4.528
    Blog-Einträge
    1
    Sers Speedking

    http://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.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •