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
der erste Block wird ordentlich abgearbeit mit 200us Hi und 200us LoCode:$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
dann kommt jedoch ein Hi von ca. 1.1ms ???
wo kommen diese 1.1ms her ?
Gruß Tobias
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
Lesezeichen