Geocaching & GPS location based games

Thema anzeigen - Tiny13, Morsecode, Bascom und ein Anfänger


Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 21 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3  Nächste


Autor Nachricht
BeitragVerfasst: So 11. Mär 2012, 22:02 
Offline
Geocacher

Registriert: Mo 8. Aug 2011, 19:41
Beiträge: 55
Ich habe ja gar kein Reaktivlicht, sondern ich will die Spannung zum tiny nur mit einem reedkontakt schalten, dahinter die LED die Moresezeichen ausgibt.
Nur bei dem Aufbau auf dem Steckbrett fängt die LED, wenn ich Spannung auf VCC gebe, manchmal nicht richtig zu blinken an.


Nach oben
 Profil  
 
BeitragVerfasst: Mo 12. Mär 2012, 07:44 
Offline
Geowizard
Benutzeravatar

Registriert: Mo 24. Sep 2007, 15:52
Beiträge: 2315
Wohnort: 39326 Hohenwarsleben
aber du hast den programmcode des reaktiven genommen? und keinen fotowiderstand sondern willst das quasi tasten bzw über nen reedschalter auslösen? dann solltest du den programmcode oder die schaltung auch dementsprechend anpassen oder hast du das schon gemacht? sonst will der tiny ja irgend nen helligkeitwert haben....
ich habe es anfangs so gemacht das ich dem tiny durch einen entsprechenden widerstand (statt ldr) suggeriert hab es wäre hell. wenn man dem dann spannung gibt sollte er auch einmalig mit dem programm entsprechend starten und ich brauchte den code nicht zu verändern. nicht elegant aber seinerzeit als "beginner" die einfachste lösung.
vielleicht solltest du mal schaltplan und code hier posten damit man weiß was du wie baust oder bauen willst.

_________________
Bild..Bild


Nach oben
 Profil  
 
BeitragVerfasst: Mo 12. Mär 2012, 20:06 
Offline
Geocacher

Registriert: Mo 8. Aug 2011, 19:41
Beiträge: 55
Hier Schaltplan und Programmcode, kam leider nicht früher zum hochladen dazu!

$regfile = "ATtiny13.DAT"

$crystal = 128000 'Frequenz des internen Oszillators



Config Portb = &B00001000 'Pinb.3 auf 'Ausgang', Rest auf 'Eingang' schalten

Portb = 0 'Ausgänge auf Low setzen

Enable Interrupts

Dim Zeichen As String * 1

Morsen:

Do

Read Zeichen

Wdtcr = &B11010100 'Watchdog auf 250ms stellen

If Zeichen = "*" Then Gosub Kurz

If Zeichen = "-" Then Gosub Lang

If Zeichen = " " Then Gosub Leer

Wdtcr = &B11010011 'Watchdog wieder auf 125ms stellen

If Zeichen = "X" Then Return

Loop

Kurz:

Portb.3 = 1

Reset Watchdog

Powerdown

Portb.3 = 0

Reset Watchdog

Powerdown

Return

Lang:

Portb.3 = 1

Reset Watchdog

Powerdown

Reset Watchdog

Powerdown

Reset Watchdog

Powerdown

Portb.3 = 0

Reset Watchdog

Powerdown

Return

Leer:

Reset Watchdog

Powerdown

Reset Watchdog

Powerdown

Return

End

Daten:

Data " " , " " , " " ,

Data "*" , "*" , "*" , "*" , " " , " " ,

Data "*" , "-" , " " , " " ,

Data "*" , "-" , "-" , "*" , " " , " " ,

Data "*" , "-" , "-" , "*" , " " , " " ,

Data "-" , "*" , "-" , "-" , " " , " " ,

Data " " , " " , " " , " " ,

Data "*" , "*" , "*" , "*" , " " , " " ,

Data "*" , "*" , "-" , " " , " " ,

Data "-" , "*" , " " , " " ,

Data "-" , " " , " " ,

Data "*" , "*" , " " , " " ,

Data "-" , "*" , " " , " " ,

Data "-" , "-" , "*" , " " ,

Data "X"


Dateianhänge:
Dateikommentar: Morseschaltung
Morseschaltung.jpg
Morseschaltung.jpg [ 7.66 KiB | 326-mal betrachtet ]
Nach oben
 Profil  
 
BeitragVerfasst: Mo 12. Mär 2012, 20:45 
Offline
Geowizard
Benutzeravatar

Registriert: Mo 24. Sep 2007, 15:52
Beiträge: 2315
Wohnort: 39326 Hohenwarsleben
hmmmm nimm mal das Morsen: weg. Ich denke dann gehts.
Kann sein das der nicht richtig läuft weil du ihm ja nicht sagst das "wenn.... dann gehe nach Morsen". Kann aber auch ganz falsch liegen....
Wenn nicht definiere nen Pin als Eingang, zieh den per Drahtbrücke auf high oder low und frage am Programmanfang nach den Definitionen den Pin ab. Vielleicht nicht die eleganteste Lösung aber funktioniert.
Theoretisch könnte man wohl die Brücke auch weg lassen , den Eingang per Befehl auf high oder low und dann abfragen und sagen wenn.... dann gehe nach Morsen.
Vielleicht hat ja jemand ne einfache und saubere Lösung..... wenn nicht einfach mal etwas testen......

_________________
Bild..Bild


Nach oben
 Profil  
 
BeitragVerfasst: Di 13. Mär 2012, 01:07 
Offline
Geoguru
Benutzeravatar

Registriert: Sa 17. Jan 2004, 00:57
Beiträge: 6221
Der Fehler liegt hier:
Zitat:
If Zeichen = "X" Then Return


Mit "Return" springt man aus einer "Gosub"-Routine zurück.
Da du hier aber in keiner "Gosub"-Routine bist holt er sich irgendwelche Rücksprungadressen und springt dann ins Nirvana.
Ersetzte mal das "Return" durch ein "Restore". Damit setzt er den Zeiger wieder auf den Anfang deiner Data-Zeilen und der Morsecode wird immer wieder ausgegeben.


Nach oben
 Profil  
 
BeitragVerfasst: Mi 14. Mär 2012, 19:11 
Offline
Geocacher

Registriert: Mo 8. Aug 2011, 19:41
Beiträge: 55
Ich komm einfach nicht weiter!
Weder das "Morsen" entfernen noch das "Restore" hat geholfen.

Noch mal mein Problem, wenn VCC für ein paar Sekunden weg ist, (~1-5sec. sprich der Cacher nimmt den Magnet weg und dann wieder zurück) soll das Programm von vorne starten ohne rücksicht darauf, wo es gerade war!

Gruß Cachehunter12


Nach oben
 Profil  
 
BeitragVerfasst: Mi 14. Mär 2012, 23:45 
Offline
Geomaster
Benutzeravatar

Registriert: Do 8. Okt 2009, 12:09
Beiträge: 390
Wohnort: 49661 Kellerhöhe
Bitte nicht schlagen, aber wo sollen den die Zeichen gelesen werden?
Unten im Code sind ja die Morsezeichen, die geblinkt werden sollen hinterlegt.
In der Zeile Über den Morsezeichen steht "Daten". Kann es sein, das hier "Zeichen" stehen müsste, damit der Tiny auch was zum lesen hat?
Ist nur so eine Idee, von einem Anfänger.

_________________
Grüße aus dem Norden

peter51d


Nach oben
 Profil  
 
BeitragVerfasst: Do 15. Mär 2012, 01:26 
Offline
Geomaster
Benutzeravatar

Registriert: Do 8. Okt 2009, 12:09
Beiträge: 390
Wohnort: 49661 Kellerhöhe
Ich nehme alles zurück und behaupte das Gegenteil.

Habe mich mal etwas mit "Data" beschäftigt.
Vergesst einfach was ich gesagt habe.

_________________
Grüße aus dem Norden

peter51d


Nach oben
 Profil  
 
BeitragVerfasst: Do 15. Mär 2012, 01:38 
Offline
Geomaster
Benutzeravatar

Registriert: Do 8. Okt 2009, 12:09
Beiträge: 390
Wohnort: 49661 Kellerhöhe
Habe mich mal etwas mit "Data" beschäftigt.
Vergesst einfach was ich gesagt habe.

Wenn ich es richtig verstanden habe, kommt der Cacher an deine Station, hällt einen Magnet an die Station und es soll ein Morsecode über eine LED ausgegeben werden.

Da würde ich mir die ganze Sache mit Watchdog und runterfusen sparen und über den Magnetkontakt einfach die Spannungsversorgung des Tiny's schalten.
Sobalt der Tiny Spannung bekommt, rennt er los und blinkt seinen Morsecode.

Ich habe mal versucht da etwas zu schreibe.
Led ist mit einem Widerstand zwischen PB3 und GND angeschlossen.
Tiny ist Out of the Box, FuseBits auf Werkseinstellung.
Sobald er Spannung bekommt, wird die in den Daten hinterlegte Morsesequenz "abgeblinkt".

Code:
$regfile = "attiny13.dat"                                   ' Controler
$crystal = 1200000                                          'Frequenz, hier 9,6Mhz Div8
$hwstack = 2                                                'hardware Stack runtergesetzt
'$sim
Config Portb.3 = Output                                     'Port B.3 als Ausgang konfiguriert
Portb.3 = 0                                                 'Port B.3 auf low gesetzt

Dim Zeichen As String * 2                                   'Variable Zeichen als einstelligen String gesetzt


  Restore Daten                                             'Daten zurücksetzen

  Do                                                        'Schleife starten
    Read Zeichen                                            'Daten lesen?
    If Zeichen = "*" Then Gosub Kurz                        'Sprunganweisung zum kurzem blinken
    If Zeichen = "-" Then Gosub Lang                        'Sprunganweisung zum langen blinken
    If Zeichen = "P" Then Gosub Pause                       'Sprunganweisung zur Pause zwischen zwei Buchstaben
    If Zeichen = "X" Then End                               'end program
  Loop

Kurz:                                                       'Kurzes Morsezeichen
   Portb.3 = 1                                              'Port B.3 auf high
   Waitms 500                                               'warte 500 ms
   Portb.3 = 0                                              'PortB.3 auf low
   Waitms 500                                               'warte 500 ms
Return                                                      'Rücksprung in die Schleife

Lang:                                                       'Langes Morsezeichen
   Portb.3 = 1                                              'PortB.3 auf high setzen
   Waitms 1500                                              'warte 1500ms
   Portb.3 = 0                                              'Portb.3 auf low
   Waitms 500                                               'warte 500 ms
Return                                                      'Rücksprung in die Schleife

Pause:                                                      'Pausenzeichen zwischen zwei Buchstaben
   Waitms 1000                                              'warte 1000 ms
Return                                                      'Rücksprung in die Schleife

Daten:

Data "*" , "*" , "*" , "P"                                  'Zu morsende Zeichen, bei Buchstaben auf Gross und Kleinschreibung achten
Data "-" , "-" , "-" , "P"
Data "*" , "*" , "*"
Data "X"


Läuft bei mir problemlos.

Wenn du den zu morsenden Text in "Klartext" in die Daten schreiben möchtst, muss halt für jeden Buchstaben eine entsprechende Blinkroutine angelegt werden.
Ich weiss aber nicht, ob dann der Platz im Tiny13 noch reicht?

_________________
Grüße aus dem Norden

peter51d


Nach oben
 Profil  
 
BeitragVerfasst: Do 15. Mär 2012, 19:30 
Offline
Geocacher

Registriert: Mo 8. Aug 2011, 19:41
Beiträge: 55
@peter51d: Vielen vielen Dank, das ist genau das was ich wollte! :2thumbs:

mfg Cachehunter12


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 21 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3  Nächste


Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Impressum