-
        

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 26

Thema: scheitere an einfach if - then - else

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    23.02.2007
    Ort
    Villmar
    Alter
    28
    Beiträge
    92

    scheitere an einfach if - then - else

    Anzeige

    hallo.

    ich habe mir um den umgang mit einem atmega8 zu erleichtern ein kleines testboard aufgebaut. port d 0 ist ein taster an 5V und an port c 5 ist eine LED.

    mein "cot" lautet wie folgt:

    $regfile = "m8def.dat"
    $crystal = 1000000


    Config Portc = Output
    Config Portd = Input


    If Portd.0 = 1 Then
    Portc.5 = 1
    Else
    Portc.5 = 0
    End If

    was mache ich falsch?

    MfG
    M!ni M0nk3y

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    26
    Beiträge
    3.467
    Du musst noch den Pull-Up Widerstand aktivieren.

    jon
    Nice to be back after two years
    www.roboterfreak.de

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    15.07.2005
    Ort
    Enns
    Alter
    32
    Beiträge
    129
    der "CODE" funzt tadellos...

    vielleicht willste ja sowas:

    $regfile = "m8def.dat"
    $crystal = 1000000

    Config Portc = Output
    Config Portd = Input

    DO
    if Portd.0 = 1 Then
    Portc.5 = 1
    Else
    Portc.5 = 0
    End If
    LOOP

    lg

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    23.02.2007
    Ort
    Villmar
    Alter
    28
    Beiträge
    92
    das mache ich wie?

    sry, blutiger anfänger!

    mit do und loop geht es auch

    hat es was zu sagen das portd.0 auch mit RXD beschriftet ist im datenblatt?

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    15.07.2005
    Ort
    Enns
    Alter
    32
    Beiträge
    129
    ich glaube, dass dein problem einfach das ist, dass der code nach dem starten des controllers ganz genau einmal durchlaufen wird und dann nie wieder - darum die endlosschleife...

    lg

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    23.02.2007
    Ort
    Villmar
    Alter
    28
    Beiträge
    92
    damit klappts aber auch net

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    26
    Beiträge
    3.467
    Ist mir gar nicht aufgefallen, dass Do-Loop fehlt...
    Was mich wundert ist, dass du den Pull-Up Widerstand nicht aktivieren musst. Ich kann bei mir keinen Taster auswerten, wenn ich den nicht aktiviere

    jon
    Nice to be back after two years
    www.roboterfreak.de

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    23.02.2007
    Ort
    Villmar
    Alter
    28
    Beiträge
    92
    Zitat Zitat von Jon
    Was mich wundert ist, dass du den Pull-Up Widerstand nicht aktivieren musst. Ich kann bei mir keinen Taster auswerten, wenn ich den nicht aktiviere
    ??

    es klappt doch gar nicht, oder was hast du gemeint?

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    15.07.2005
    Ort
    Enns
    Alter
    32
    Beiträge
    129
    aha, dachte es geht schon:

    mit do und loop geht es auch
    mit dem beispiel aus dem Wiki sollte es gehen...

    Code:
    $regfile = "m32def.dat"  'Die Anweisung bestimmt Controllertyp, hier AVR Mega 32
     $framesize = 32          'Stackanweisungen, die eigentlich nur bei größeren Programmen 
     $swstack = 32            'wirklich nötig werden
     $hwstack = 32
     $crystal = 16000000      'Die Frequenz des verwendeten Quarzes
    
     $baud = 9600             'Die Baudrate für RS232 Ausgabe. 
                              'Sie muss auch bei PC Terminalprogramm identisch sein
    
    
     Config Portc.0 = Output  'Ein Pin wird aus Ausgang konfiguriert PC0 (also Pin0 von Port C)
     Led Alias Portc.0       
     Config Pina.0 = Input    'Ein Pin (PA0) wird als Eingang definiert
     Taster Alias Pina.0
     Porta.0=1                'Interner Pullup Widerstand ein
     
      do
         if taster=0 then
           Led=1            'Pin wird auf High, also 5V geschaltet
         else
           Led = 0          'Pin wird auf Low, also 0V geschaltet
         endif
         Waitms 100
      loop

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.08.2004
    Beiträge
    197
    Ausgaben mit zb. set Portc.5
    Eingaben aber mit zb if Pind.0
    $regfile = "m8def.dat"
    $crystal = 1000000

    Config Portc = Output
    Config Portd = Input

    DO
    if Pind.0 = 1 Then
    Portc.5 = 1
    Else
    Portc.5 = 0
    End If
    LOOP

    Probiere das mal.

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

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