• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Tiny2313 - Problem

Hucky3000

Geocacher
Hallo !
Eigentlich wollte ich ja in Assembler starten - jetzt soll es nun doch BasCom sein.

Die Hardware ist fertig. Um mal ein Lebendzeichen zu bekommen soll die grüne LED, die an PD.3 über eine Transistor angeschlossen ist, im Takt blinken.
Wenn ich das Programm transferiere blitzt die LED so 2-3 mal kurz auf - das wars.
Das Programm soll mit den internen 4MHZ laufen.
Im Google-Urwald habe ich irgendwo gelesen, dass man den Chip so nutzen kann ohne in den FUSE-Bytes rumzukaspern.
Vielleicht liegts auch an der Uhrzeit, dass ich das nicht peile warum das ganze nicht funzt wie ich es gern hätte.
Wer kann mir da mal auf die Sprünge helfen ?

Hucky

Code:
'***********************************************
'Blechkasten - Nachtcache
'Compiler : BASCOM-AVR
'Hardware : Tastencode,LEDs,Servo
'Version 0.1
'Hucky3000
'***********************************************

$regfile = "attiny2313.dat"
$crystal = 4000000
$framesize = 32
$swstack = 10
$hwstack = 40

Config Portb = &B00000000                                   'PortB komplett auf Eingang
Config Portd = &B01111000                                   'PortD 0-2 auf Eingang - Rest auf Ausgang - PD7 nicht vorhanden
Portb = &B11111111                                          'PortB komplett Pull Up ein
Portd = &B00000111                                          'PortD 0-2 Pull Up ein

Portd.3 = 1                                                 'rote LED an
Waitus 1000
Portd.3 = 0                                                 'rote LED aus
Waitus 1000

End
 

Lanfair

Geocacher
Hucky3000 schrieb:
Wenn ich das Programm transferiere blitzt die LED so 2-3 mal kurz auf - das wars.
Das wundert mich etwas, da der Port D3 nichts mit dem ISP zu tun hat. Die LED sollte laut Deinem Code einmal kurz aufblitzen, für die Dauer von einer Millisekunde.

Zwei Sachen mußt Du in Deinem Programm korrigieren, damit die LED sichtbar blinkt:

1000 µs = 1ms = 0,001 Sekunde, ändere Waitus in Waitms um, dann leuchtet die LED eine ganze Sekunde und ist anschließend eine Sekunde ausgeschaltet. Das lässt sich auch von einem Normalsterblichen erkennen, im Gegensatz zu der Leuchtdauer von einer Millisekunde ;)

Die zweite Änderung ist das Einfügen einer Schleife. Dein Programm wird derzeit einmal durchlaufen und ist dann beendet. Wenn die LED blinken soll, muß das Einschalten und das Ausschalten wiederholt erfolgen, also in einer Schleife liegen. Dafür kannst Du z.B. eine While-Schleife nehmen, die dann endlos läuft:
Code:
While 1 = 1
  LED an
  Warten
  LED aus
  Warten
WEnd
Viel Erfolg!
 
OP
Hucky3000

Hucky3000

Geocacher
Uihhhh

Das ging ja schnell :)
us Sekunden habe ich mit meinen müden Augen auch noch gesehen :eek:ps:
Hab schon alles weggepackt - heute nicht mehr.
Dachte immer nach "END" fängt der automatisch wieder von vorne an.
Jetzt weiß ich auch wofür es "DO" + "LOOP" gibt :roll:
"Makros" kann ich wie bei Assembler auch noch setzten...

Ich glaub ich geh erstmal pennen.... :???:

Hucky
 

Lanfair

Geocacher
Hucky3000 schrieb:
Jetzt weiß ich auch wofür es "DO" + "LOOP" gibt :roll:
Hmm, jetzt, wo Du es sagst. Ich bin mit Bascom noch nicht so vertraut, daher schrieb ich While. Nimm Do + Loop, das ist offensichtlich der richtige Weg bei Bascom ;)
 

huzzel

Geowizard
Wenn Du Bascom nimmst, musst Du noch lange nicht auf Assember verzichten.
Eindeutige Assemblerzeilen kannst Du ohne was in Bascom einfügen, längere Abschnitte mit
Code:
$asm
'Assebmler-Code
'...
$end Asm
maskieren.
 
OP
Hucky3000

Hucky3000

Geocacher
cooo !
Wusste ich nicht. Für meine (bisherigen) Anwendungen sollte es ohne funzen. ;)
PS: Die LED blinkt jetzt so wie sie soll :D Nun kann es weiter gehen...

Hucky
 
Oben