-         

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

Thema: Interruptprobleme

  1. #1
    1hdsquad
    Gast

    Interruptprobleme

    Anzeige

    Warum funktioniert das nicht? Er springt aus den Labeln mit WAITMS nicht mehr raus...
    Irgendwie verstehe ich das ganze Interruptzeug nicht.
    MFG

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.05.2004
    Beiträge
    133
    kannst du den code hier einbringen?

    ich hatte auch vor kurzem probleme damit,konnte sie aber lösen.
    interrupts sind eigentlich ganz leicht.
    aber ohne code kann ich dir den fehler nicht sagen.

  3. #3
    1hdsquad
    Gast
    Der hat mein Attachement nicht hinzugefuegt, so ein ***.

    MFG
    Angehängte Dateien Angehängte Dateien

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.05.2004
    Beiträge
    133
    kannst du den code compilieren?
    bei mir gibts im Bascom kein attiny2313.dat
    heißt bei mir 2313def.dat

    den timer benötigst du gar nicht

    config portd.2 muß bei mir config pind.2 heißen,sonst meckert der compiler

    die routine interrupt würde ich so schreiben:

    If Modus > 3 Then Modus = 1
    If Modus = 1 Then Goto Blinken
    If Modus = 2 Then Goto Lauflicht
    If Modus = 3 Then Goto Leuchten
    Modus = Modus + 1

    obwohls eigentlich egal is,im endeffekt passiert dasselbe.

    dann wäre noch die frage ob du die 333 ms im simulator abwartest oder ob du das schon so auf deinen tiny übertragen hast, und dort solang wartest?
    denn im simulator kannste mal nen kaffee machen bis die 333 ms verstrichen sind.
    desweiteren mußt du natürlich auch die fusebit auf internal 1mhz setzen,weil sonst das timing von compiliertem code nicht mit der tatsächlichen taktfrequenz übereinstimmt.

    ich hoffe irgendetwas nützliches konnte ich dir hier auflisten.

    EDIT: woher kommt der interrupt eigentlich? durch einen taster vermute ich mal,oder?

    Mfg,
    --> Mr.G.

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.05.2004
    Beiträge
    133
    noch etwas wichtiges:

    config int1 = rising
    oder
    config int1 = falling

    damit bestimmst du,ob eer interrupt bei high oder low level ausgelöst wird.
    pullup nicht vergessen.

    die sprungmarken solltest du erst nach der hautpschleife schreiben,sonst durchläuft er diese auch beim jedem durchlauf.
    zumindest bei mir.


    also so

    do

    loop


    blinken:

    return


    lauflicht:

    return

    .
    .
    .


    wenn du pin eines port als 1 setzen willst,mußt du portb = 255 verwenden,oder jeden pin einzeln setzen.
    das könntest du in einer schleife machen:

    for count = 0 to 8
    pinb.count = 1
    next


    MfG,
    --> Mr.G.

  6. #6
    1hdsquad
    Gast
    Jepp, der Interrupt wird durch einen Taster ausgeloest. Der sollte auch einen Pullup haben, Pollin Evaluationsboard...
    Den Code kann ich kompilieren. Der Timer ist nur ein Ueberbleibsel anderer Versuche, schon weg...
    So springt das Programm aus der Blinkenschleife nicht mehr raus, trotz Interrupt... Auch mit Rising Interrupt.
    But why?
    MFG
    Angehängte Dateien Angehängte Dateien

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.05.2004
    Beiträge
    133
    versuchs mal damit

    $regfile = "2313def.dat"
    $crystal = 1000000

    Config Portb = Output
    Config Int1 = Falling
    Config Pind.2 = Input

    Dim Modus As Byte
    Modus = 1
    Dim Zeit As Integer
    Zeit = 50

    Enable Interrupts
    Enable Int1

    On Int1 Switch

    B Alias Portb.6
    E Alias Portb.5
    C Alias Portb.4
    K Alias Portb.3
    S Alias Portb.2



    Do

    Select Case Modus

    Case 1 : Portb = 255
    Portd.5 = 1


    Case 2 : Portb = 255
    Portd.5 = 1
    Waitms Zeit
    Portb = 0
    Portd.5 = 0
    Waitms Zeit

    Case 3: Portb = 0
    Portd.5 = 0
    B = 1
    Portd.5 = 1
    Waitms Zeit
    E = 1
    Portd.5 = 0
    Waitms Zeit
    C = 1
    Portd.5 = 1
    Waitms Zeit
    K = 1
    Portd.5 = 0
    Waitms Zeit
    S = 1
    Portd.5 = 1
    Waitms Zeit
    B = 0
    Portd.5 = 0
    Waitms Zeit
    E = 0
    Portd.5 = 1
    Waitms Zeit
    C = 0
    Portd.5 = 0
    Waitms Zeit
    K = 0
    Portd.5 = 1
    Waitms Zeit
    S = 0
    Portd.5 = 0
    Waitms Zeit
    End Select


    Loop


    Switch:
    Modus = Modus + 1
    If Modus > 3 Then Modus = 1

    Return



    MfG,
    --> Mr.G.

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.05.2004
    Beiträge
    133
    ich hab die verzögerung runtergesetzt damit ich im simulator nicht solang warte.
    wegen dem pullup:

    bei pull up,also wenn du auf +5 ziehst,dann mußt du falling nehmen,und den den pin mit dem taster auf gnd ziehen.
    ...entprellen


    MfG,
    -->Mr.G.

  9. #9
    1hdsquad
    Gast
    Ich habe deins mal getestet im Simulator und es sieht erstmal gut aus soweit. Bin bei einem Kumpel und mein Board loift hier nicht, werds nachher zuhause auf dem Tiny testen...
    Dankeschoen erstmal!
    MFG

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Hallo,
    ich hab jetzt nicht alles duchgelesen, aber bei 2313def.dat und dem attiny2313.dat ist schon ein unterschied,
    der erste ist für den AT90S2313, das andere für den Attiny2313, und ein Programm das für den einen compiliert ist, läuft auf dem anderen i.d.R. nicht. [-X

    @mrg
    wenn bei Dir die Datei (attiny2313) nicht da ist, ist entweder Dein Bascom schon uralt, oder die Datei ist sonstwie abhanden gekommen, denn die gibts schon lange.

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

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