PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : einfacher Code geht nicht auf M8 jedoch auf Tiny26



spatz2222
06.03.2006, 16:39
Hallo - folgender Code funkt auf einem ATtiny26 so wie er soll :



$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





$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

spatz2222
06.03.2006, 16:57
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 !!!



$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