-         

Ergebnis 1 bis 10 von 10

Thema: Int0 will einfach nicht - oder bin ich zu b....

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    22.06.2004
    Beiträge
    8

    Int0 will einfach nicht - oder bin ich zu b....

    Anzeige

    Hallo,

    nach dem ich mich schon eine weile mit den Attiny2313 beschäftigt habe, ist nun ein Mega8 dran. Und schon ist das erste Problem da.

    folgender Code

    '------------------------
    $regfile= "m8def.dat"
    $crystal=4000000

    Ddrd=&B11111011
    Portd=&B00000100

    On Int0 Onint0
    Config Int0 = Rising
    Enable Int0
    Enable Interrupts

    Do
    Loop

    Onint0:
    Toggle Portd.0
    Return
    '-----------------------

    Nachdem am Portd.2 eine steigende Flanke anliegt, sollt eigentlich der Portd.0 umschalten. Aber es funktioniert einfach nicht.
    Müssen da noch irgend welche Fuses anders gesetzt werden? Aus dem Datenblatt bin ich auch nicht schlauer geworden.

    Gruß, Raimond

    Edit: vergessene Zeile im Code eingefügt

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2006
    Ort
    Biberach
    Alter
    27
    Beiträge
    485
    Hi,
    du hast vor Enable Int0 "Enable Interrupts" vergessen.


    MfG

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    22.06.2004
    Beiträge
    8
    Hallo,

    das wäre jetzt zu schön gewesen, aber die Zeile habe ich im ersten Posting einfach vergessen.
    Hast Du vielleicht noch eine Idee?
    Am Portd.2 liegt auf jedem Fall ein entsprechendes Signal an, mit Oszi kontrolliert.

    Grüße,
    Raimond

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Hallo,

    hast Du mal einen anderen Port als PD0 verwendet um die LED zu steuern, denn an PD0 und PD1 ist die UART, nicht das Bascom diese einfach mal aktiviert hat ?!

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    22.06.2004
    Beiträge
    8
    Ja, habe auch schon andere Ports probiert und den Oszi drangehängt - absolute tote Hose. Irgendwie kann ich machen was ich will, ich beiss mir gleich ins Knie.

    resegnierte Grüße,
    Raimond

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    Könnte es daran liegen: Portd=&B00000100 ?

    Soweit ich weiss, schaltet man damit den internen Pullup ein.
    Das scheint mir grundsätzlich nicht falsch, ich würde aber trotzdem mal versuchen Portd=&B00000000 zu setzen.
    Begründen kann ich das allerdings nicht.

  7. #7
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Ich bin der Sache noch nicht nachgegeangen, aber ich hatte schon mal Probleme, sodaß ich auch in "OPTIONS->COMPILER->CHIP" den richtigen Chip einstellen mußte, damit es funzt.
    "&REGFILE=M8DEF.DAT" hat da nicht gereicht.
    Unerklärlich, sinnlos, aber es war so.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    23.11.2006
    Ort
    K-Town
    Alter
    39
    Beiträge
    178
    das mit dem Pull Up scheint mir garnicht so unlogisch!
    schließlich benutzt du ja auch Raising!

    probiers doch mal mit FALLING und einer negativen Flanke am Int0!
    dann sollte es funktionieren.....(denke ich!)

    Zapo.

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    22.06.2004
    Beiträge
    8
    Hallo,

    habe den Fehler gefunden, auch wenn ich es noch nicht so richtig begreife.
    Er lag nicht am Code oder MC, sondern an der äußeren Beschaltung. Das Signal kommt über einen Optokoppler (4N25). Nach dem ich diesen ausgetauscht habe funktioniert alles bestens.
    Was ich nur nicht verstehe, warum? Denn beide Optokoppler haben am Ausgang das gleiche Signal laut Oszi. Es handelt sich nur um andere Hersteller. Ich bin eigentlich davon ausgegangen das ein 4N25 gleich ein 4N25 ist - egal welcher Hersteller. Defekt kann der Ok auch nicht sein, denn in einer anderen Schaltung funktioniert er tadellos.

    verwunderte Grüße
    Raimond

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    23.11.2006
    Ort
    K-Town
    Alter
    39
    Beiträge
    178
    wie habt ihr eigentlich einen Taster entprellt.
    wenn ich hier ein Interrupt auslöse bekomme ich immer 2 Interrupts!
    (habe auch schon Int0 disable geschaltet aber der interrupt ist schneller als der Befehl in BASCOM!)

Berechtigungen

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