- Akku Tests und Balkonkraftwerk Speicher         
Seite 3 von 6 ErsteErste 12345 ... LetzteLetzte
Ergebnis 21 bis 30 von 51

Thema: Pins, Ports und Fragen beim Lernen...

  1. #21
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.232
    Anzeige

    Powerstation Test
    Ist eigentlich das was ich Dir vorgeschlagen habe.
    Dein Programmierer hat nur gleich die LED toggleroutine mit in die Tastenabfrage eingebaut.
    Dein Speicher für den vorherigen Tastendruck ist dabei die Variable readInput.
    Was noch fehlt ist die Entprellung.
    Ohne die wird's nicht sauber funktionieren.

  2. #22
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.07.2006
    Alter
    44
    Beiträge
    2.474
    Zitat Zitat von wkrug
    Ist eigentlich das was ich Dir vorgeschlagen habe.
    Dein Programmierer hat nur gleich die LED toggleroutine mit in die Tastenabfrage eingebaut.
    Dein Speicher für den vorherigen Tastendruck ist dabei die Variable readInput.
    Was noch fehlt ist die Entprellung.
    Ohne die wird's nicht sauber funktionieren.
    Mein Kollege ,hat Javascript, PHP und C drauf, mit Controllern aber nichts zu tun

    Wenn es das ist, was du meinst, dann hab ich ja schon mal was funktionierendes \/

    Ich bin noch nicht soweit, um selbst sowas schreiben zu können

    An welcher Stelle integriert man diese Entprellung?

  3. #23
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.232
    Guck mal hier im Forum rum, da gibts entprell Routinen jeder coleur.
    Eventuell hat ja auch dein Compiler schon eine in ner Lib mit drin.

    Die Entprell routine sollte deinen readInput Parameter und anstatt deiner TASTE , !TASTE funktion beeinflussen.

  4. #24
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.07.2006
    Alter
    44
    Beiträge
    2.474
    Danke dafür

    Ich hab ne neue Frage:

    Anschluss an Mega8:
    - Taster 1 an PORTD.2 soll bei Tastendruck an PORTB.0 LED 1 zum leuchten bringen
    - Taster 2 an PORTD.3 soll bei Tastendruck an PORTB.1 LED 2 zum leuchten bringen

    Code:
    #define 	F_CPU 3686400	// Taktfrequenz des myAVR-Boards
    #include	<avr\io.h>		// AVR Register und Konstantendefinitionen
    //----------------------------------------------------------------------
    main()
    {
    	DDRB = 0b11111111;                  // PORTB = Ausgang
    	DDRD = 0b11111111;                 	// PORTD = Eingang
    	PORTD = 0b00001100;                 // PORTD = PULL-UP
    	
    	do 
    	{
    		switch (PIND)
    		{
    			case 0b00000100: PORTB = 0b00000001; break;
    			case 0b00001000: PORTB = 0b00000010; break;
    						default: PORTB = 0b00000000;
    		}
    		
    	}
    	while (true);
    }
    Warum leuchten die LEDs entgegengesetzt?
    Also bei Tastendruck 1 leuchtet LED 2 und bei Tastendruck 2 leuchtet LED 1?
    Was muss ich anders machen?

    Gruß Andreas

    PS: Bei if funzt alles ohne Probleme

  5. #25
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    10.08.2004
    Ort
    Großbardorf
    Alter
    37
    Beiträge
    674
    Ein Problem seh ich darin, dass der PortD nicht als Eingang geschalten ist, da hast du wahrscheinlich as verwechselt.
    Werden die LEDs durch einen low- oder high-Pegel angeschalten? Bei lowaktiven LEDs müsstest du die Zuweisungen an PortB vertauschen.
    Willst du eigentlich auch, dass beide LEDs gleichzeitig leuchten können? Dafür müsstest du nämlich noch ein case mit 0b00001100 einfügen, im Moment dürfte immer nur eine leuchten können. (Obwohl, bei lowaktiven LEDs müssten im Moment bei nicht gedrückten Tasten beide leuchten...)

  6. #26
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.07.2006
    Alter
    44
    Beiträge
    2.474
    Das ist das, was mich verwirrt
    Das "default" funzt wie es soll, wenn nichts gedrückt ist, dann bleiben beide aus.
    Ich könnte am portB die pins tauschen bzw. die bits, das wäre dann aber zu einfach
    Die LED's liegen auf GND \/

    Was mich stört, dass die LED's unlogisch gegenüber dem Taster leuchten.
    Wenn 1 dann sollte auch LED an sein und nicht die im gegenüberliegende LED im anderen case.

  7. #27
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    10.08.2004
    Ort
    Großbardorf
    Alter
    37
    Beiträge
    674
    Hast du den Port D jetzt eigentlich als Eingang geschalten? Wenn nicht, dann mach das erstmal.

    Was passiert, wenn du beide Taster gleichzeitig drückst?

  8. #28
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.07.2006
    Alter
    44
    Beiträge
    2.474
    Vorweg, bin grad nicht zu Haus, hab den Code heut früh nur eben hier reingesetzt, kann jetzt jedenfalls nichts testen

    PORTD hab ich als Eingang definiert
    Wenn ich nun beide Tasten drücke, dann leuchtet nur die erste LED.
    Wenn nichts gedrückt wird, dann ist nach "default" alles aus.
    Wenn erste taste nach erstem "case" gedrückt wird, dann leuchtet zweite LED nach zweitem "case" und anders herum

    Irgendwo hab ich nen Denkfehler.
    Ich könnte die Pins vom PORTB in den case tauschen, dann funzt es, wie es soll, jedenfalls nach dem Board (optisch).

  9. #29
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.07.2006
    Alter
    44
    Beiträge
    2.474
    Hab ne neue Frage:
    Was ist mit den Pins TXD und RXD alles möglich?

    Wenn ich zwei Controller miteinander kommunizieren lassen möchte, welche Möglichkeiten hat man darüber zu senden und zu empfangen?

    Kann man über diese Leitungen von einem Controller if-Bedingungen des anderen erfüllen?

  10. #30
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.03.2006
    Ort
    Darmstadt
    Alter
    33
    Beiträge
    522
    Hallo copious,

    die Pins RXD und TXT sind die Empfangs(receive)- und Sende(transmit)pins des U(S)ARTs. Siehe auch https://www.roboternetz.de/wissen/index.php/UART und http://www.mikrocontroller.net/artic...orial#Der_UART .

    Der UART wird meistens dazu benutzt, um Daten mit dem PC auszutauschen. Natürlich kann man es auch zwischen 2 Controllern tun. Man muss nur ein passendes Protokoll festlegen, damit man weiss, wer was wie senden darf.

    Kann man über diese Leitungen von einem Controller if-Bedingungen des anderen erfüllen?
    Das verstehe ich nicht so ganz. Könntest Du es bitte etwas deutlicher formulieren?

    MfG Mark

Seite 3 von 6 ErsteErste 12345 ... LetzteLetzte

Berechtigungen

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

LiFePO4 Speicher Test