-         

Ergebnis 1 bis 7 von 7

Thema: Was ist falsch beim Signalabfragen?

  1. #1
    Erfahrener Benutzer Begeisterter Techniker Avatar von Jacob2
    Registriert seit
    26.05.2007
    Ort
    Berlin
    Beiträge
    345

    Was ist falsch beim Signalabfragen?

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hi,
    ich will das Ausgangssignal des US-Abstandwarners, welches ca. 12V beträgt (wahrscheinlich n'bisschen weniger) an einem Pin abfragen. Die Beschaltung des Pins im Bild. Programmiert habe ich den AVR mit folgendem:
    Code:
    #include <avr\io.h>
    int main (void) 
    {    
       DDRA = 0b00000011;
       PORTA = 0b11111100; //Pull Up ein
       while(1) 
       {    
         if(bit_is_set(PORTA, 7))
    	 {        
           PORTA &= 0b11111100;
         }
    	 else
    	 {
           PORTA |= 0b0000011;
    	 }
       }                       
       return 0;                
    }
    Dies soll bewirken, dass wenn das Signal kommt, Pin 0 und 1 low werden. Sonst high. Da es nicht funktioniert die Frage, was hab ich falsch gemacht?
    [Edit] (kann sein dass ich bei den &= , |= oder so was verdreht hab)
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken portbelegung.gif  
    Roboter, CNC Fräse, Elektronik und Basteleien stelle ich auf meiner Website vor...

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    24.02.2006
    Ort
    3. Planet eines kleinen Sonnensystems in einem Seitenarm der Milchstraße
    Alter
    63
    Beiträge
    622
    Hi,

    if(bit_is_set(PINX, PIN_NUMBER)) {} ...

    Gruß

    Fred
    Only entropy comes easy. - Anton Checkhov

  3. #3
    Erfahrener Benutzer Begeisterter Techniker Avatar von Jacob2
    Registriert seit
    26.05.2007
    Ort
    Berlin
    Beiträge
    345
    Wie ist das jetzt gemeint
    Wo gibt man dann an, um welchen Port es sich handelt?
    Soweit ich die allgemeine Form verstanden habe heißt das dann z.B.:

    if(bit_is_set(PIN7, PIN_7) {} ...

    Oder wie???
    Ich versteh net wie du das meinst...
    Danke!

    Gruß Jacob2
    Roboter, CNC Fräse, Elektronik und Basteleien stelle ich auf meiner Website vor...

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    24.02.2006
    Ort
    3. Planet eines kleinen Sonnensystems in einem Seitenarm der Milchstraße
    Alter
    63
    Beiträge
    622
    Hi,
    Zitat Zitat von Jacob2
    Wie ist das jetzt gemeint :-s ... Wo gibt man dann an, um welchen Port es sich handelt?
    genau da liegt Dein Denkfehler: Es geht nicht um einen PORTX (X steht für den Portbuchstaben, z.B. A,B,C oder so), den Du auswerten willst: Du möchtest doch eigentlich einen Eingang lesen. Die Eingänge heißen bei den AVRs nun mal PINX (X wie oben). Für PIN_NUMBER setzt Du eine Konstante ein; der erlaubte Wertebereich ist 0-7.

    Ich rate Dir dringlich, ein entsprechendes Tutorial durchzuarbeiten, z.B. http://www.mikrocontroller.net/artic...R-GCC-Tutorial -- dort sind die bit_is_set/clear() Funktionen gut erklärt: http://www.mikrocontroller.net/artic..._aus_Registern .

    Gruß

    Fred
    Only entropy comes easy. - Anton Checkhov

  5. #5
    Erfahrener Benutzer Begeisterter Techniker Avatar von Jacob2
    Registriert seit
    26.05.2007
    Ort
    Berlin
    Beiträge
    345
    Ok. Danke, da steht alles drin!
    Das mit der Beschaltung ist richtig oder? Von wegen 12V oder so...(nicht dass ich mir da was kaputtmache)
    Roboter, CNC Fräse, Elektronik und Basteleien stelle ich auf meiner Website vor...

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    24.02.2006
    Ort
    3. Planet eines kleinen Sonnensystems in einem Seitenarm der Milchstraße
    Alter
    63
    Beiträge
    622
    Hi,

    Du könntest auch einfach einen Spannungsteiler aus 2 Widerständen einsetzen. Ganz sicher kann man gehen, indem man einen Optokoppler benutzt. Hier ein Link zu Pegelwandlern.

    Gruß

    Fred
    Only entropy comes easy. - Anton Checkhov

  7. #7
    Erfahrener Benutzer Begeisterter Techniker Avatar von Jacob2
    Registriert seit
    26.05.2007
    Ort
    Berlin
    Beiträge
    345
    OK, danke das hat sich dann jetzt gelöst!
    Roboter, CNC Fräse, Elektronik und Basteleien stelle ich auf meiner Website vor...

Berechtigungen

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