-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 20

Thema: problem mit rn control PORTA

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    26.12.2007
    Beiträge
    35

    problem mit rn control PORTA

    Anzeige

    Hallo zusammen

    hab ein kleines Problem mit dem Porta. meines RN-Controls. Bei diesem Programm zum Beispiel:


    Code:
    $regfile = "m32def.dat"
    $crystal = 16000000
    $baud = 9600
    
    config Porta.0 = Input
    config Portc.0 = Input
    
    do
    
    If Pina.0 = 1 Then
    Pinc.0 = 0
    End If
    
    loop
    leuchtet die LED dauernd, sowohl wenn ich Spannung an PA0 anlege als auch wenn gar nichts dranhängt. Weiss jemand weiter? Mikrocontroller austauschen?

    Gruss flo

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Hallo,
    da du die LED wohl an PORTC.0 angeschlossen hast, musst du diesen auch als Output konfigurieren.
    Setzen musst du den Ausgang dann mit

    PORTC.0=0

    Code:
    $regfile = "m32def.dat"
    $crystal = 16000000
    $baud = 9600
    
    config Porta.0 = Input
    config Portc.0 = Output
    
    do
    
    If Pina.0 = 1 Then
       PORTC.0 = 0
    Else
       PORTC.0=1
    End If
    
    loop
    End
    Gruß

    Rolf

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    26.12.2007
    Beiträge
    35
    guten abend rolf
    ich danke dir für deine schnelle antwort. hab das oben verstanden. hat im endeffekt auch funktioniert, dieses LED problem war eigentlich eine vereinfachung folgenden problems:

    Code:
    $regfile = "m32def.dat"
    $crystal = 16000000
    $baud = 9600
    
    Config Pina.0 = Input
    
    Config Pinb.0 = Output
    Config Pinb.1 = Output
    Config Pinc.6 = Output
    Config Pinc.7 = Output
    Config Pind.4 = Output
    Config Pind.5 = Output
    
    
    
    
    Do
    
    If Pina.0 = 1 Then
    
    Pinb.0 = 1
    Pinb.1 = 0
    Pinc.6 = 1
    Pinc.7 = 0
    Pind.4 = 1
    Pind.5 = 1
    
    
    Else
    
    Pinb.0 = 1
    Pinb.1 = 0
    Pinc.6 = 1
    Pinc.7 = 0
    Pind.4 = 0
    Pind.5 = 0
    
    
    
    End If
    
    Loop
    ist ja im grunde genommen dasselbe. Motoren reagieren aber bei einem anlegen einer spannung überhaupt nicht...

    gruss flo

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.09.2005
    Beiträge
    276
    Mega32 kann ein paar mA , keine Amper für Motoren.

    Gento

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Hallo flo,
    du hast hier aber wieder
    Pinb.0=1 anstelle von
    Portb.0=1 geschrieben.

    Hast du die Motoren evtl. direkt an den Pins angeschlossen? Die ziehen doch bestimmt mehr Strom, als der Pin abkann (30 mA). Bei LEDs ist das noch ok.

    Gruß

    Rolf

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    26.12.2007
    Beiträge
    35
    naanaaa, da hängt schon noch ein µC dazwischen. das problem hat sich nun aber ausgeweitet, und zwar hab ich zur fehlererkennung anstatt motoren print-befehle eingefügt. ausschauen tut das dann so:

    Code:
    $regfile = "m32def.dat"

    $crystal = 16000000

    $baud = 9600


    Config Pina.1 = Input


    Do


    If Pina.1 = 0 Then

    Print "spannung liegt an"


    Waitms 400



    
    Else


    Print "spannung liegt nicht an"


    Waitms 400


    
    End If


    Loop

    End


    wenn ich nun ein kabel einstecke (nicht mit einer spannungsquelle und GND verbunden, beginnt das terminal schon teilweise "spannung liegt an" print-befehle auszuspucken, was für mich überhaupt nicht logisch klingt?

    gruss flo

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Sieht aus, als hättest du keinen externen PullUp angeschlossen.
    Dann solltest du nach dem Config PinA.1 = Input den internen PullUp einschalten:

    PORTA.1=1

    Gruß

    Rolf

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    26.12.2007
    Beiträge
    35
    hab ich auch schon versucht. rs 232 sagt dann jedoch nur noch "spannung liegt nicht an", ob ich jetzt spannung an PORTA.1 anlege, ein draht alleine, oder gart nichts anschliesse. könnte es sein, dass ich den PORTA kaputt gemacht habe?

    gruss flo

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Den Pin A.1 musst du übrigens mit GND verbinden, damit "Spannung liegt an"
    ausgegeben wird, du fragst ja auf PINA.1=0 ab.
    Wenn du wie oben beschrieben den PullUp eingeschaltet hast und dann A.1 mit GND verbindest, sollte schon der andere Text kommen. Ansonsten könnte der Pin hinüber sein.
    Ganz oben hast du übrigens PINA.0 geschrieben, hast du jetzt gewechselt?

    Gruß

    Rolf

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    26.12.2007
    Beiträge
    35
    Ich tippe mal darauf, dass der PIN kaputt ist. Code sieht folgendermassen aus:

    Code:
    $regfile = "m32def.dat"
    $crystal = 16000000
    $baud = 9600

    Config Pina.5 = Input

    
    Do

    If Porta.5 = 0
    Then
Print "spannung liegt an"

    Waitms 400


    
    Else

    
    Print "spannung liegt nicht an"


    Waitms 400


    
    End If


    
    Loop
    End

    Angeschlossen hab ich den Minus-Pol einer Batterie (1.5V) an GND, den Plus-Pol der Batterie an PINA.5. Zwischen Pluspol und PINA.5 liegt noch ein Taster. RS 232 gibt jedoch nur "spannung liegt nicht an" heraus. ich tippe auf Mikrocontroller austauschen?

    gruss flo

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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