- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 2 von 2

Thema: einfacher Code geht nicht auf M8 jedoch auf Tiny26

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    14.09.2004
    Beiträge
    38

    einfacher Code geht nicht auf M8 jedoch auf Tiny26

    Anzeige

    Powerstation Test
    Hallo - folgender Code funkt auf einem ATtiny26 so wie er soll :


    Code:
    $crystal = 8000000
    $regfile = "at26def.dat"
    '$regfile = "m8def.dat"
    
    Dim A As Byte
    
    Config Pina.4 = Output
    Outpin Alias Porta.4
    
    
       Set Outpin
       Waitus 200
       Reset Outpin
       Waitus 200
    
       Set Outpin
       Waitus 200
       Reset Outpin
       Waitus 200
    
    
    Do
    
    Loop

    wenn ich diesen Code auf einem ATmega8 ausführe kommt schrott raus




    Code:
    $crystal = 8000000
    '$regfile = "at26def.dat"
    $regfile = "m8def.dat"
    
    Dim A As Byte
    
    Config Pinc.5 = Output
    Outpin Alias Portc.5
    
    
       Set Outpin
       Waitus 200
       Reset Outpin
       Waitus 200
    
       Set Outpin
       Waitus 200
       Reset Outpin
       Waitus 200
    
    
    Do
    
    Loop
    der erste Block wird ordentlich abgearbeit mit 200us Hi und 200us Lo

    dann kommt jedoch ein Hi von ca. 1.1ms ???

    wo kommen diese 1.1ms her ?

    Gruß Tobias

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    14.09.2004
    Beiträge
    38
    hi nochmal - also der Code auf dem At26 funkt auch nicht ganz so wie er soll - folgender Code soll folgendes machen : für ein Funkmodul soll wenn eine 1 Übertragen wird ein Hi und ein Lo Signal von je 400us übertragen werden, für eine 0 soll die Zeit je 200us lang sein ...

    das ganze funkt auch jedoch kommt das letzte Hi immer viel zu lange - siehe oben - in meinem fall ist das jetzt ca. 1.9ms

    obwohl ich zum schluß ja mit reset outpin den Pin rechtzeitig abgeschalten habe !!!


    Code:
    $crystal = 8000000
    $regfile = "at26def.dat"
    '$baud = 38400
    
    Dim X As Byte
    Dim A As Byte
    Dim Ausg As Bit
    
    X = 85
    
    Config Pina.4 = Output
    Outpin Alias Porta.4
    
    
    Wait 1
    
    For A = 0 To 7
       Ausg = 0
       If X.a = 1 Then Ausg = 1
       Gosub Send
    Next
    
    
    Do
    Loop
    
    Send:
       '******************
       If Ausg = 1 Then
          Set Outpin
             Waitus 400
          Reset Outpin
             Waitus 400
       End If
       '******************
       If Ausg = 0 Then
          Set Outpin
             Waitus 200
          Reset Outpin
             Waitus 200
       End If
       '******************
    Return

    wer eine Hardcopy vom Logic - Analyzer haben möchte soll sich per Mail melden !

    kann es sein das der Befehl Waitus Probleme im µs bereich macht ?
    wie umgeht man am besten das Waitus mit Timer ? dann muß man dem aber immer für 0 oder 1 einen neuen Wert zuweisen ...



    Gruß Tobias

Berechtigungen

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

LiFePO4 Speicher Test