- LiTime Speicher und Akkus         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 17

Thema: Mega8 arbeitet sehr langsam (Gelöst)

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

    Mega8 arbeitet sehr langsam (Gelöst)

    Anzeige

    Praxistest und DIY Projekte
    Hallo,

    ich habe ein kleines Problem bei meinem Code.
    Und zwar arbeitet der Mega8 sehr langsam bei einer Frequenz von 4MHz.
    Selbst bei einem Wait von "1" braucht er mehrere Sekunden um fortzufahren. wenn kein Wait eingefügt rennt er wie verrückt.
    Der Code stellt Blinkende bzw. laufende LEDs dar.

    zugleich könntet ihr mir veraten wie ich zu einer variable +1 rechne

    Danke im Voraus

    Carsten

    Code:
    $regfile = "m8def.dat"
    $crystal = 4000000
    
    Enable Interrupts                                           'einschalten Der Interrupts
    Enable Int0                                                 'einschalten Von Interrupt Int0
    Config Int0 = Low Level                                     'configuriere Int0 Auf Low Level
    On Int0 Keypress                                            'springe zu Keypress
    
    
    Dim Up As Bit
    Dim Count As Byte
    Dim Action As Byte
    
    Config Portc = Input
    Config Portb = Output
    Portb = &B111111111
    
    
    Do
       If Action = 1 Then
    
          If Up = 0 Then
             Rotate Portb , Left
             Wait 1
          End If
    
          If Up = 1 Then
             Rotate Portb , Right
             Wait 1
          End If
    
          If Count = 1 Then
             Up = 0
          End If
    
          If Count = 0 Then
             Up = 1
          End If
    
       End If
    
       If Action = 2 Then
          Rotate Portb , Left
          Wait 1
       End If
    
    Loop
    
    
    Keypress:
       If Pinc.0 = 0 Then
          Action = 1
          Count = 1
          Up = 0
          Portb = &B1111110
       Elseif Pinc.1 = 0 Then
          Action = 2
          Portb = &B1010101
       Elseif Pinc.2 = 0 Then
          Action = 3
       End If
    
    Return

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    25.02.2005
    Beiträge
    175
    Hast Du die Fusebits denn auch auf 4Mhz eingestellt?

    Nur die $Crystal-Direktive alleine reicht nicht!

    Und 1 addieren: Entweder Variable=Variable+1 oder INCR Variable...

    Grüße

    Torsten

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.02.2007
    Ort
    BA-Wü
    Alter
    32
    Beiträge
    165
    zugleich könntet ihr mir veraten wie ich zu einer variable +1 rechne Zwinkern
    Variable = Variable + 1
    Viele Grüße,
    Michael

    Sn60Pb40 Rulez
    www.silvestercountdown.de.vu- Dein Countdown bis Neujahr!

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    02.11.2005
    Ort
    Dortmund
    Alter
    30
    Beiträge
    1.641
    Wie TorstenG schon angedeutet hat - guck mal wieviele Sekunden. Wenns 4 sind, ist die Antwort einfach - Bascom nehmen, F4 drücken und losfusen. Okay, das war ein Scherz, da muss man höllisch aufpassen. Du musst den Crystal auf 4Mhz Internal OScillator oder so in der Art umstellen.
    o
    L_
    OL
    This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat!

    http://de.youtube.com/watch?v=qV1cZ6jUeGE

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    15.12.2006
    Beiträge
    8
    hmm komisch :-P
    Zaehler=Zaehler+1
    geht nun, vorher wollt des irgendwie net

    Joar Fulse hab ich jetzt auf 4MHz hoch.
    Is zwar noch immer was langsam mit Wait 1 aber nagut reicht grad so.

    Noch mal danke
    Mfg Carsten

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    02.11.2005
    Ort
    Dortmund
    Alter
    30
    Beiträge
    1.641
    Die internen haben schonmal einige Ungenauigkeiten, aber nix, was so auffallen dürfte. Was heißt denn geht grad so? Das er mit wait 1 ne Sekudne wartet ist logggisch, oder?
    o
    L_
    OL
    This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat!

    http://de.youtube.com/watch?v=qV1cZ6jUeGE

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    15.12.2006
    Beiträge
    8
    Allerdings weiß ich das ,

    aber wie ich des seh kann ma net kürzer warten lassen als 1ms

    Carsten

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    02.11.2005
    Ort
    Dortmund
    Alter
    30
    Beiträge
    1.641
    Da musst du hingehen und dir selbst nen Timer basteln. doch, es geht! Wenn ich mir angucke, das bei einem tatsächlichem Quarz von 1Mhz und eingestelltem Quarz von 4Mhz die länge aller Wartezeiten 4 mal so groß ist, müsste man mit 4Mhz reality und 1 Mhz gecodet ein Viertel aller zeiten erreichen können. Das heißt, du kannst im Minimum 1/16 Millisekunde warten.
    o
    L_
    OL
    This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat!

    http://de.youtube.com/watch?v=qV1cZ6jUeGE

  9. #9
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    24.03.2007
    Ort
    Titisee - Neustadt
    Alter
    45
    Beiträge
    289
    Mach doch
    waitms XXX
    Dann ist das schneller.
    MfG & THX
    Lordcyber
    Alias Michael

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    15.12.2006
    Beiträge
    8
    OK, danke!

    Werd ich mal probieren.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

LiTime Speicher und Akkus