-         

Ergebnis 1 bis 6 von 6

Thema: Programm will nicht so wie ich--> bitte Fehlersuche

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.04.2005
    Ort
    Pforzheim
    Alter
    36
    Beiträge
    163

    Programm will nicht so wie ich--> bitte Fehlersuche

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo Leute,
    ich habe hier mal folgenden code zusammengeschrieben:

    Code:
    $regfile = "m32def.dat"
    $crystal = 4000000
    $baud = 9600
    
    Rem   Portb.4 = 1 --> Motor links vor
    Rem   Portb.5 = 1 --> Motor links rück
    Rem   Portb.6 = 1 --> Motor rechts vor
    Rem   Portb.7 = 1 --> Motor links rück
    
    
    Config Portb = Output
    Config Portd = Input
    Config Portc = Input
    
    
    
    
    Do
    
    
       ' Alles Weiß --> vorwärts
       If Pinc.2 = 1 Then
    
          If Pind.2 = 0 And Pind.3 = 0 And Pind.4 = 0 And Pind.5 = 0 And Pind.6 = 0 Then
          Portb.4 = 1
          Portb.5 = 0
          Portb.6 = 1
          Portb.7 = 0
          End If
    
          If Pind.2 = 0 And Pind.3 = 0 And Pind.4 = 0 And Pind.5 = 0 And Pind.6 = 1 Then
          Portb.4 = 1
          Portb.5 = 0
          Portb.6 = 0
          Portb.7 = 1
          End If
    
          If Pind.2 = 0 And Pind.3 = 0 And Pind.4 = 0 And Pind.5 = 1 And Pind.6 = 1 Then
          Portb.4 = 1
          Portb.5 = 0
          Portb.6 = 0
          Portb.7 = 0
          End If
    
          If Pind.2 = 0 And Pind.3 = 0 And Pind.4 = 0 And Pind.5 = 1 And Pind.6 = 0 Then
          Portb.4 = 1
          Portb.5 = 0
          Portb.6 = 0
          Portb.7 = 0
          End If
    
          If Pind.2 = 0 And Pind.3 = 0 And Pind.4 = 1 And Pind.5 = 1 And Pind.6 = 0 Then
          Portb.4 = 1
          Portb.5 = 0
          Portb.6 = 1
          Portb.7 = 0
          End If
    
          If Pind.2 = 0 And Pind.3 = 0 And Pind.4 = 1 And Pind.5 = 0 And Pind.6 = 0 Then
          Portb.4 = 1
          Portb.5 = 0
          Portb.6 = 1
          Portb.7 = 0
          End If
    
          If Pind.2 = 0 And Pind.3 = 1 And Pind.4 = 1 And Pind.5 = 0 And Pind.6 = 0 Then
          Portb.4 = 1
          Portb.5 = 0
          Portb.6 = 1
          Portb.7 = 0
          End If
    
          If Pind.2 = 0 And Pind.3 = 1 And Pind.4 = 0 And Pind.5 = 0 And Pind.6 = 0 Then
          Portb.4 = 0
          Portb.5 = 0
          Portb.6 = 1
          Portb.7 = 0
          End If
    
          If Pind.2 = 1 And Pind.3 = 1 And Pind.4 = 0 And Pind.5 = 0 And Pind.6 = 0 Then
          Portb.4 = 0
          Portb.5 = 0
          Portb.6 = 1
          Portb.7 = 0
          End If
    
          If Pind.2 = 1 And Pind.3 = 0 And Pind.4 = 0 And Pind.5 = 0 And Pind.6 = 0 Then
          Portb.4 = 0
          Portb.5 = 1
          Portb.6 = 1
          Portb.7 = 0
          End If
    
          If Pind.2 = 1 And Pind.3 = 1 And Pind.4 = 1 And Pind.5 = 1 And Pind.6 = 1 Then
          Portb.4 = 0
          Portb.5 = 1
          Portb.6 = 0
          Portb.7 = 1
          End If
    
       End If
    
       If Pinc.2 = 0 Then
          Portb.4 = 0
          Portb.5 = 0
          Portb.6 = 0
          Portb.7 = 0
       End If
    
    Loop
    Es ist ein code für einen Liniensucher mit CNY70 sensoren.

    Jetzt habe ich aber folgendes Problem:
    Es funktioniert nur bei komplett schwarzem untergrund richtig(die räder drehen rückwärts).

    bei weissem untergrund schalten die motoren willkürlich durch die gegend.

    Habe die pins an portd.2 bis portd.6 wärend dem weissen untergrund mal gemessen: die scheinnen irre schnell zwischen hi und low zu schalten...

    Habe ich im code was vergessen? Ist er selbst fehlerhaft?

    Bitte um mithilfe.
    MfG Ich

    -------------------------------------------------------------
    http://www.lorenzschulz.de/Roboter.html

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    04.11.2005
    Ort
    Erlangen
    Alter
    35
    Beiträge
    77
    mmmh interessanter programmierstil
    nein spass bei seite wo sind nun die Sensoren dran? an pind 2-6 oder nur einer an pinc.2 ?
    du könntest als erstes mal versuchen die if abfrage mit waitms 100 zb zu entprellen vielleicht hilft das weiter.

    die schaltung für die cny 70 sind soweit ok?

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    25.02.2005
    Beiträge
    175
    Und schalte doch mal die internen Pullups ein, möglicherweise hängt der Pin in der Luft bei weißem Grund?

    Portc=&B11111111
    Portd=&B11111111

    (Nach dem Config .... =Input)

    Grüße

    Torsten

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.04.2005
    Ort
    Pforzheim
    Alter
    36
    Beiträge
    163
    Das mit den pullups habe ich in meiner schaltung berücksichtigt (10kOhm an Vcc). Die schaltung ist auch i.O. ich kann die Sensoren abgleichen und bekomme ohne das Programm auch saubere high/low signale bei sw/ws übergang.
    die 100ms bewirken nur, dass die motoren nicht so schnell schalten, sondern ruckartig.

    Danke aber trotzdem
    Noch welche vorschläge?
    MfG Ich

    -------------------------------------------------------------
    http://www.lorenzschulz.de/Roboter.html

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.04.2005
    Ort
    Pforzheim
    Alter
    36
    Beiträge
    163
    Bin grad am fehler suchen, wollte mal fragen ob mir jemand bestätigen kann, dass die schaltschwelle zwischen HI und LOW beim ATMEGA32 bei 1,35V liegt?

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    04.11.2005
    Ort
    Erlangen
    Alter
    35
    Beiträge
    77
    sers
    also meines wissens nach ist alles über 4,2 volt high.

Berechtigungen

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