- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 12

Thema: Bascom Programm läuft nicht richtig

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    muss ich jetzt beim input immer eine zahl und einen buchstaben eingeben und beim output nur buchstabe? tut mir leid, ich stehe total auf dem schlauch
    Das mit Config Port und Config Pin ist in der Tat verwirrend.
    Eindeutig geht´s mit dem DDR-Register (DDR = Data Direction Register):

    DDRX.Y = 0 bedeutet: Anschluss X.Y ist ein Eingang
    DDRX.Y = 1 bedeutet: Anschluss X.Y ist ein Ausgang

    Da bei Power-On-Reset alle DDDR-Register den Wert 0 enthalten, sind alle I/O-Anschlüsse zunächst mal Eingänge. Für diese Aufgabe muss man sie nicht konfigurieren, das sind sie ganz von alleine.

    Soll ein Anschluss ein Ausgang werden, muss das entsprechende Bit im DDR-Register auf 1 gesetzt werden. Das kann entweder einzeln geschehen, also z.B.

    DDRB.2 = 1
    DDRB.3 = 1
    DDRB.4 = 1
    DDRB.5 = 1

    oder Du setzt gleich alle 8 Bits des Registers:

    DDRB = &B00111100 ("&B" heißt, dass die folgende Zahl binär ausgeschrieben wird)
    Mit diesem Befehl sind die Anschlüsse B5,B4,B3 und B2 Ausgänge, der Rest sind Eingänge.

    Und wenn Du den PullUp-Widerstand eines Eingangs aktivieren willst, musst Du eine 1 in das entsprechende PORT-Register schreiben. Also für Deine beiden Eingänge also z.B.

    PORTB.0 = 1
    PORTB.1 = 1

    In anderen Worten:
    1. Ob Ein- oder Ausgang, legt das DDR-Register fest.
    2. Ist der Anschluss ein Ausgang, legt das PORT-Register seinen Pegel fest.
    3. Ist er ein Eingang legt das PORT-Register fest, ob der PullUp-Widerstand aktiviert wird.

    Jetzt etwas klarer?

  2. #2
    Allgemein ist das Programm richtig geschrieben.
    Wie Sauerbruch schon schreibt das aktivieren der internen Pullups (ist unten mal bei dein Programm eingebunden)
    Allgemein versteh ich auch nicht warum du ein Attiny verwendest und den Reset aus programmierst.
    Was für ein Programmiergerät verwendest du?
    Überträgst du den Hexcode mit Basom oder mit ein anderes Programm.
    Ich glaube eher das in der Richtung was nicht richtig eingestellt ist und dadurch keine (fehlerhafte) Übertragung erfolgt.

    mfg

    Rick


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

    Config Pinb.0 = Input
    Portb.0 = 1
    Config Pinb.1 = Input
    Portb.1 = 1
    Config Portb.2 = Output
    Config Portb.3 = Output
    Config Portb.4 = Output
    Config Portb.5 = Output


    Do

    If Pinb.0 = 1 And Pinb.1 = 1 Then
    Portb.2 = 1
    Portb.4 = 0
    Portb.3 = 1
    Portb.5 = 0
    Else
    End If

    If Pinb.0 = 0 And Pinb.1 = 0 Then
    Portb.2 = 0
    Portb.4 = 1
    Portb.3 = 0
    Portb.5 = 1
    Else
    End If

    If Pinb.0 = 0 And Pinb.1 = 1 Then
    Portb.2 = 1
    Portb.4 = 0
    Portb.3 = 0
    Portb.5 = 1
    Else
    End If

    If Pinb.0 = 1 And Pinb.1 = 0 Then
    Portb.2 = 0
    Portb.4 = 1
    Portb.3 = 1
    Portb.5 = 0
    Else
    End If

    Loop

    End

Ähnliche Themen

  1. AVR-Schaltung läuft nicht richtig
    Von Amri im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 08.11.2008, 17:31
  2. Antworten: 4
    Letzter Beitrag: 21.07.2008, 15:48
  3. Timer1 Läuft nicht richtig
    Von DeltaEx im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 23.01.2006, 16:19
  4. Antworten: 3
    Letzter Beitrag: 15.08.2005, 16:41
  5. Programm Läuft nicht richtig,hilfen Sie mir mal
    Von janboejle im Forum AVR Hardwarethemen
    Antworten: 4
    Letzter Beitrag: 08.06.2005, 20:49

Berechtigungen

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

Solar Speicher und Akkus Tests