- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 6 von 6

Thema: AVR Port Status Berechnen

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.03.2006
    Beiträge
    138

    AVR Port Status Berechnen

    Anzeige

    LiFePo4 Akku selber bauen - Video
    hi,

    ich wollte mal wissen ob und wie man einen Port Status berechnen kann.

    wenn ich das richtig interpretiere da sieht das so aus: Z.B.

    Porta 255 da 8 Bit

    Pina0 = 1
    Pina1 = 2
    Pina2 = 4
    Pina3 = 8
    Pina4 =16
    Pina5 =32
    Pina6 = 64
    Pina7 =128 ist alles zusammen 255 stimmts.

    Jetzt muss ich doch irgend wie den Pin berechnen können der gedürckt ist.
    Z.B.

    Pina2 ist gedrückt also ist der 255(8Bit)- Wert=...

    255 - 251 = 4

    Nun weis ich welcher Taster gedückt ist stimmts.

    Wie finde ich das aber dann in Bascom heraus ich habe es mal auf verschidene weissen probiert ging aber alles nicht.

    Also z.b. so

    While Portx = 255
    Lampe AUS

    ???????????????????????

    Mir geht es erst mal nur darum den wert (251 ,....) dem port zu entlocken.

    Naja vieleicht ein bisschen umständlich aber man macht sich gedanken.

    mfg

    P.S:Vieleicht was für C prog.............................................. ............

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    29.05.2005
    Ort
    Rott am Inn
    Alter
    36
    Beiträge
    373
    hallo,
    also erstens musst du eingänge mit pin abfragen und nicht mit port.
    auserdem wenn porta.2 gedrückt ist 255-4=251.
    mfg franzl

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.03.2006
    Beiträge
    138
    SCHON aber der normal wert ist 255 und wenn ich PINA2 drücke geht der auf 251 und 255-251 ist 4 also weiss ich jetzt das pina2 gedrückt wurde.

    nun würde ich gerne wissen wie ich z.b. die 251 dem port entlocke umd das zu berechnen.

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    29.05.2005
    Ort
    Rott am Inn
    Alter
    36
    Beiträge
    373
    hallo,
    also entweder schreibst du if pina.2 = 1 then oder if pina = 251 then
    soweit ich weiß allerdings ist das zweite eher unüblich und eigentlich auch schwachsinnig, denn was ist nun wenn noch irgendein eingang an pina anliegt dann stimmt deine aussage nicht mehr.
    mfg franzl

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    22.06.2004
    Beiträge
    8
    Hallo AVRBoy

    falls ich Deine Frage richtig verstanden habe, möchtest Du den Gesamtwert (8bit) je nach aktivierten Port haben.

    hier mal eine Idee, ist aber nicht getestet müsste aber funktionieren

    Code:
    Dim Temp As Byte
    Dim Portstatus As Byte
    Dim N As Byte
    
    Do
       Temp = 0
       For N = 7 To 0 Step -1
          Shift Temp , Left , 1
          Temp = Pind.n
       Next N
    
       Portstatus = Temp
    Loop
    Gruß, Raimond

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.03.2006
    Beiträge
    138
    hi,
    in einem projekt von mir ist die port "berechnung" jetzt drin habe es selbst heraus bekommen aber danke.
    mfg

Berechtigungen

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

Solar Speicher und Akkus Tests