Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: funker_pack.zip Kategorie: Open-Micro/Open-Mini/Open-Midi/Open-Macro/Open-Maxi (von ogoianer - 13.02.2008 16:14)
 Als Antwort auf funker_pack.zip von Joe - 12.02.2008 21:16
ogoianer nutzt:  CC1-Unit V1.1, CC1-M-Unit V1.1, CC1-Station V1.1, Open-Micro, Open-Mini
Hallo,
da sind zwei kleine Programme drin, die ich hier einfach mal im Quelltext zu Lehrzwecken reinkopiere. Ich hoffe DieHard hat da nichts dagegen.

Cu Rene


'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
'IIIIIIIIIIIIIII           MORSE TRAINER                IIIIIIIIIIIIIII
'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
' CONRAD ELECRONIC Jul.01 (DH)
'
'---------------- Kurzbeschreibung -------------------------------------
' Das Programm ist ein kleiner Morsetrainer für das Application-Board und
' erzeugt 5er Gruppen aus Buchstaben und Zahlen.
'
' - Die Geschwindigkeit wird über die Variable sp eingestellt und bewegt sich so zwischen
'   200 BpM (1) und deutlich unter 20 Bpm (>10).
'   Wer es komfortabler will kann die Variable sp auch über ein Poti und einen AD-Port erzeugen.
' - Die 5er Gruppen werden am LCD angezeigt



'--------------------------
'------ I/O PORTS ---------
'--------------------------
define lcd_port byteport[2]
define lcd_rs   port[14]
define lcd_rw   port[13]
define lcd_e    port[15]

define poti ad[1]
           ' maximal 20 Zeichen pro Zeile

'--------------------------
'---- SYSTEM MEMORY -------
'--------------------------
'---- LCD DRIVER -------------
define lcd_buf   byte[1]
define lcd_param byte[2]
define sp byte [3]
define fo byte [4]
define z1 byte[5]
define laenge byte[6]
define Gruppenzahl byte[7]
define MAXPOS 20

#system_init  
gosub lcd_init
randomize timer
fo=0
'----- ZEICHEN GENERIEREN----
#neuzeichen
sp=2
z1=(abs(rand) mod 35)

'-----ZEICHEN AUSGABE---
fo=fo+1
looktab tabelle1,z1,laenge
beep 100,sp*laenge,sp

looktab tabelle2,z1,laenge
if laenge=0 then goto fgruppen
beep 100,sp*laenge,sp

looktab tabelle3,z1,laenge
if laenge=0 then goto fgruppen
beep 100,sp*laenge,sp


looktab tabelle4,z1,laenge
if laenge=0 then goto fgruppen
beep 100,sp*laenge,sp


looktab tabelle5,z1,laenge
if laenge=0 then goto fgruppen
beep 100,sp*laenge,sp
'zeichen zum lcd
#fgruppen
lcd_param=&H41+z1
if z1 < 26 then goto lcdout
lcd_param=&H30+z1-26
#lcdout
gosub lcd_writechar


'---FORMATIERUNG IN 5er GRUPPEN -----
pause sp*2
if fo<5 then goto neuzeichen
pause sp*5
gruppenzahl=gruppenzahl+1
lcd_param=&H20
gosub lcd_writechar
if gruppenzahl=2 then gosub lcd_line2
if gruppenzahl=4 then gosub lcd_cls else goto fogru
gruppenzahl=0
#fogru
fo=0
goto neuzeichen
'---------------------------------------
'------------- LCD ROUTINES -------------
'----------------------------------------
#LCD_INIT
' alle ports 0
  lcd_port = OFF

' 8-Bit-Modus aktivieren
  lcd_param=&H38 : gosub LCD_WRITECMD

' mit 8-Bit-Command in 4-Bit-Modus umschalten
  lcd_port=&B00000010
  tog lcd_e
  tog lcd_e

' ab jetzt 4-Bit-Modus
  lcd_param = &H28 : gosub LCD_WRITECMD
  lcd_param = &H0C : gosub LCD_WRITECMD

' Display loeschen
#LCD_CLS
  lcd_param = &H02 : gosub LCD_WRITECMD
  lcd_param = &H01 : gosub LCD_WRITECMD
return
' Zeilenwechsel
#LCD_GOTOLINE
  if lcd_param = 1 then lcd_param = &H80
  if lcd_param = 2 then lcd_param = &HC0
  goto LCD_WRITECMD
#LCD_LINE2
  lcd_param=&HC0:goto LCD_WRITECMD
' LCD-Kommando
#LCD_WRITECMD
  lcd_buf = OFF
  goto LCD_WRITE

' Zeichenausgabe
#LCD_WRITECHAR
  lcd_buf = &B00100000

' Kommando oder Zeichen an Display senden
#LCD_WRITE
  lcd_port = lcd_buf or (lcd_param shr 4) ' Hi-Nibble
  tog lcd_e
  tog lcd_e
  lcd_port = lcd_buf or (lcd_param and &H0F)  ' Lo-Nibble
  tog lcd_e
  tog lcd_e
return



'----- ZEICHEN CODIERUNG --------
'  1=kurz 3=lang 0=nix

table tabelle1
' a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9
'------------------------------------------------------------------------
  1 3 3 3 1 1 3 1 1 1 3 1 3 3 3 1 3 1 1 3 1 1 1 3 3 3 3 1 1 1 1 1 3 3 3 3
tabend
table tabelle2
  3 1 1 1 0 1 3 1 1 3 1 3 3 1 3 3 3 3 1 0 1 1 3 1 1 3 3 3 1 1 1 1 1 3 3 3
tabend
table tabelle3
  0 1 3 1 0 3 1 1 0 3 3 1 0 0 3 3 1 1 1 0 3 1 3 1 3 1 3 3 3 1 1 1 1 1 3 3
tabend
table tabelle4
  0 1 1 0 0 1 0 1 0 3 0 1 0 0 0 1 3 0 0 0 0 3 0 3 3 1 3 3 3 3 1 1 1 1 1 3
tabend
table tabelle5
  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 3 3 3 3 1 1 1 1 1
tabend




'**********************************************************************
'****                CW-KEYER MIT CQ-TEXT                        *****
'**********************************************************************
' CONRAD ELECRONIC JUL.01 (DH)
' -  Paddle Anschluss an Port1 (Punkt) und Port2 (Strich)
' -  Mithörton am Port "BEEP"
' -  Geschwindigkeitseinstellung über Poti an ad1
' -  Punkt und Strich Speicherung
' -  Taste für cq Text Ausgabe an Port 8
'
'          Port1   -----------I
'    (GND) Port2   --------------PADDLE
'          Port3   -----------I
'
' - Port5 ist der Ausgang und wird an den Transceiver angeschlossen
'
'   Für maximale Geschwindigkeit nimmt die Variable speed den Wert 3 an.
'   Ein Punkt ist dann 47ms, die Pause 53ms und der Strich 165ms.
'   Das entspricht in etwa den geforderten 1 zu 1 zu 3 Verhältnissen.
'   Das Tempo ist dann etwa 120 und sollte für die meisten Fälle
'   ausreichend sein. Nach unten gibt es eigentlich nur die Gähn-Grenze.
'**********************************************************************
'--------------------------
'------ I/O PORTS ---------
'--------------------------
define poti ad[1]
define strich port[3]
define punkt  port[1]
define gnd    port[2]
define out    port[5]
define text   port[8]

'--------------------------
'---- SYSTEM MEMORY -------
'--------------------------
define f byte[1]
define l byte [2]
define k byte[3]
define pflag  byte[4]
define sflag  byte[5]
define speed  byte [6]
define w      byte[7]
define const1 byte[8]
define const2 byte[9]
define const3 byte[10]
'--------------------------
'--- SYSTEM CONSTANTS -----
'--------------------------
f =100                     'Frequenz Mithörton
const1=25
const2=3
const3=1
gnd=0
out=on


'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
'IIIIIII     PROGRAM MAIN LOOP    IIIIIIIIIIIIII
'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
#abfrage
if not text then gosub cqtext
'--- Einstellung mit Poti ---------------------
'speed = poti/const1+2
'----------------------------------------------
speed=2
k=speed:l=const2*speed
if not strich then gosub gibstrich
if not punkt then gosub gibpunkt
if sflag   then gosub gibstrich
if pflag   then gosub gibpunkt
goto abfrage
'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII


'IIIIIIIIIIII DOT GENERATOR IIIIIIIIIIIIIIIIIIII
#gibpunkt
out=off:beep f,k,0:out=on
pflag=0
for w= const3  to Speed -1
pause 1
if strich then goto weiter
sflag=1
#weiter
next
return
'IIIIIIIIIIII DASH GENERATOR IIIIIIIIIIIIIIIIIII
#gibstrich
out=off:beep f,l,0:out=on
sflag=0
for w= const3 to speed-1
pause 1
if punkt then goto wei
pflag=1
#wei
next
return
'IIIIIIIIIIIIIIIII   CQ-CALL   IIIIIIIIIIIIIIIIII
#cqtext
gosub cq
gosub cq
gosub cq
gosub de
gosub rufzeichen
gosub rufzeichen
gosub cq
gosub pse
gosub k
return
'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII


#cq

out=off:beep f,l,0:out=on:pause k
out=off:beep f,k,0:out=on:pause k
out=off:beep f,l,0:out=on:pause k
out=off:beep f,k,0:out=on:pause l
'----------
out=off:beep f,l,0:out=on:pause k
out=off:beep f,l,0:out=on:pause k
out=off:beep f,k,0:out=on:pause k
out=off:beep f,l,0:out=on:pause l
pause 3*l
return
#de
out=off:beep f,l,0:out=on:pause k                        'D
out=off:beep f,k,0:out=on:pause k
out=off:beep f,k,0:out=on:pause l
'---------
out=off:beep f,k,0:out=on:pause l                        'E
pause 3*l
return
#rufzeichen
out=off:beep f,l,0:out=on:pause k                        'D
out=off:beep f,k,0:out=on:pause k
out=off:beep f,k,0:out=on:pause l
'-----------
out=off:beep f,k,0:out=on:pause k                        'L
out=off:beep f,l,0:out=on:pause k
out=off:beep f,k,0:out=on:pause k
out=off:beep f,k,0:out=on:pause l
'-----------
out=off:beep f,k,0:out=on:pause k                         '4
out=off:beep f,k,0:out=on:pause k
out=off:beep f,k,0:out=on:pause k
out=off:beep f,k,0:out=on:pause k
out=off:beep f,l,0:out=on:pause l
'----------
out=off:beep f,k,0:out=on:pause k                         'R
out=off:beep f,l,0:out=on:pause k
out=off:beep f,k,0:out=on:pause l
'----------
out=off:beep f,l,0:out=on:pause k                          'C
out=off:beep f,k,0:out=on:pause k
out=off:beep f,l,0:out=on:pause k
out=off:beep f,k,0:out=on:pause l
'----------
out=off:beep f,k,0:out=on:pause k                          'L
out=off:beep f,l,0:out=on:pause k
out=off:beep f,k,0:out=on:pause k
out=off:beep f,k,0:out=on:pause l
pause 3*l
return
#pse
out=off:beep f,k,0:out=on:pause k
out=off:beep f,l,0:out=on:pause k
out=off:beep f,l,0:out=on:pause k
out=off:beep f,k,0:out=on:pause l
'----------
out=off:beep f,k,0:out=on:pause k
out=off:beep f,k,0:out=on:pause k
out=off:beep f,k,0:out=on:pause l
'----------
out=off:beep f,k,0:out=on:pause l
pause 3*l
return
#k
out=off:beep f,l,0:out=on:pause k
out=off:beep f,k,0:out=on:pause k
out=off:beep f,l,0:out=on:pause l
return


ogoianer früher mal topmail

 Antwort schreiben

Bisherige Antworten:

Re: funker_pack.zip (von Joe - 13.02.2008 18:20)
    Re: funker_pack.zip (von MaPi - 14.02.2008 8:00)
        Re: funker_pack.zip (von Joe - 14.02.2008 17:00)
            Re: funker_pack.zip (von Marko Kleistner - 14.02.2008 20:43)
                Re: funker_pack.zip (von Joe - 15.02.2008 15:35)