PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : waitms funktioniert GARNICHT



wanderer
14.05.2007, 14:33
Hallo, habe hier ein STK300 von Kanda und ein Problem bei der Programmierung in Bascom:

Wenn ich waitms benutze, bleibt an dieser stelle der Programmcode einfach stehen, selbst wenn ich waitms auf 1 stelle:


$regfile = "m128def.dat"
$crystal = 8000000
$baud = 9600
Config Portb = Output

Portb.1 = 1
Waitms 100
Portb.1 = 0

Hat jemand eine Idee wodran es liegen koennte? Auch "Print" funktioniert nicht, da scheint irgendwas mit dem timing nicht in ordnung zu sein, auch die umstellung von internen auf externen quarz hat nichts gebracht.. bin echt "Hilflos".. evtl habt ihr ja ideen.

Gruß,

wanderer

gomaman
14.05.2007, 15:16
Wenn das ger ganze Code ist, das kann so nicht gehen. Bitte mal den gesamte Code posten.

Udo

minium :)
14.05.2007, 15:24
Hi,

waitms bedeutet warte millisekunden, wenn du 100 oder 1 hast ist das fast nicht zu sehen, stelle den Wert mal auf 1000 oder einfach auf wait 1. Steuerst du eine LED an ?

Viele Grüße

Jon
14.05.2007, 15:36
Bei waitms 100 sieht man gerade so eine kurzzeitige Anderung.

Du musst das:
Portb.1 = 1
Waitms 100
Portb.1 = 0
noch in eine Do-Loop Schleife packen und ein "End" am Ende des Codes hinzufügen.

Sollte dann so aussehen:

$regfile = "m128def.dat"
$crystal = 8000000
$baud = 9600
Config Portb = Output

do
Portb.1 = 1
Waitms 100
Portb.1 = 0
loop

End

jon

chr-mt
14.05.2007, 15:52
do
Portb.1 = 1
Waitms 100
Portb.1 = 0
loop

oder für Faule:

do
toggle portb.1
Waitms 100
loop

An sonsten, mal die Standardeinstellungen kontrollieren:
Mega 103 Kompatibilitäsmodus ausgeschaltet ?
JTAG aus ?
Quarz richtig ?



;)

Gruß
Christopher

recycle
14.05.2007, 17:36
do
Portb.1 = 1
Waitms 100
Portb.1 = 0
loop


Der Port wird auf 0 gesetzt, die Schleife springt zurück und setzt den Prot sofort wieder auf 1 ...
Bei einer Taktfrequenz von 8 MHz würde ich ehrlich gesagt nicht erwarten, dass man von dem Wechsel viel sehen kann - ein gleichmässiges Blinken ganz bestimmt nicht.



oder für Faule:

do
toggle portb.1
Waitms 100
loop


Nicht nur "fauler" - auch sinnvoller, weil der Port hier jeweils 100ms in einem Zustand bleibt bevor er wieder umgeschaltet wird.

Wenn man das mit einer LED kontrollieren will, muss man allerdings immer noch recht schnell "gucken" können ;-)

Netbird
14.05.2007, 17:36
Hallo, diese Variante funktioniert noch nicht so wie sie soll, auch nach dem Ausschalten muss eine Wartezeit vorgegeben werden.

DO
Portb.1 = 1
Waitms 100
Portb.1 = 0
waitms 100 <- HIER!
LOOP

Die Variante mit TOGGLE müsste dagegen funktionieren, weil nach jeder Änderung des Schaltzustands gewartet wird.

wanderer
14.05.2007, 22:41
Nein das mit der Schleife ist es nicht ;) (Hatte es schon mit schleifen und allem versucht)
JTAG brauche ich, aber den 103er Modus versuche ich mal zu deaktivieren, danke bis hierhin, melde mich gleich wieder.

wanderer
14.05.2007, 22:44
Jaaa :D Es war der kompatibilitäts Modus! Vielen dank, ging ja schön schnell :)