/***************************************************************************/ /* DB0HGW - RepeaterControl */ /* Autor/s: S. HUEBNER */ /* Date : 05-27-01 */ /***************************************************************************/ /* V1.12 : 01-07-02 : Aenderung einiger Parameter (Aenderung zur Vorversion): MAX_SQL_DURATION war 12 ist 10 (fadingbehaftete aber lesbare Signale erzeuten keinen rogerbeep; hoffentlich bleibt die Unempfindlich- keit gegenber den derzeitig auftretenden Stoerungen jedoch einigermaen erhalten, war beim alten Wert recht vorteilhaft ! BEACON_LOCK_TIME war 1024 ist 1250 (Spielertum etwas verringern) */ #define BYTE unsigned char #define WORD unsigned int //#define ___80552___ // fuer die Testumgebung wird das UNI11 Board genutzt // mit 80C552 prozessor, die Zielhardware ist aber ein // 87C52, wenn fuer die Zielhardware compiliert wird // Zeile auskommentieren void Main(void); void Timer0(void); void Timer1(void); void Kennung(BYTE, BYTE); BYTE Wait1750Hz(void); BYTE Squelch(void); void Init(void); /* Aktionsflag */ #define STATE_1750HZ 0x01 #define WAIT_SQUELCH 0x80 #define WAIT_BEACON 0x04 #define PTT_OFF 0x02 #define CW_SPEED 1 /* CW Geber Punkt 65ms lang */ #define STATUS_ACTIV 1 /* 1750Hz detektiert */ #define STATUS_INACTIV 0 /* 1750Hz aktiviert */ #define SQUELCH_OPEN 0 /* Rauschsperre offen */ #define SQUELCH_CLOSE 1 /* Rauschsperre zu */ /* Intervallzeit Timer1 ist ca. 65ms */ #define PTT_ON_DURATION 0xFF /* Zeit zwischen RogerBeep - PTT OFF */ #define BEACON_INTERVALL 1846 /* Kennungsbake */ #define WINDOW_1750HZ 40 /* Zeitfenster 2s, in dem der Rufton mit bestimmter Zeitdauer present sein muss */ #define DURATION_1750HZ 4 /* Mindestdauer Rufton ca. 0.4s */ #define MAX_SQL_DURATION 10 /* Mindestdauer Squelch offen */ #define BEACON_LOCK_TIME 1250 /* Sperrzeit fuer Bakenkennung */ #define APRS_DEBOUNCING 20 /* Entprellen des APRS Monitor Signals */ #define BULLETIN_LENGTH 0x0A /* Laenge des Kennungsblockes in BYTE */ #define FREQ 0x50 /* Reloadwert fuer Timer0, Tonerzeugung */ /* Definition der Ein/Ausgaenge - Portpins */ #define IN_RUFTON P1_0 /* Portpin fuer Ruftonerkennung LowActiv Eingang */ #define OUT_PTT P1_1 /* Portpin fuer PTT HighActiv Ausgang */ #define IN_SQL P1_2 /* Squelch Eingang */ #define OUT_TON P1_4 /* CW-Ton Ausgabe */ #define OUT_CTRL P1_3 /* nur zum Test */ #define OUT_MONITOR P1_5 /* Kanalmonitor */ BYTE Main_bCW; /* Flag zum Tasten der CW-Kennung "0" kein Ton "1" Ton */ BYTE Main_bOLD_SQL; /* letzter Statuswert Squelch dient der Flankenerkennung */ BYTE Main_bT1Int; /* Timer 1 Elemente */ struct { BYTE b1750Duration; BYTE b1750HzSQLWindow; BYTE bCWSpeed; BYTE bPTTOn; BYTE bAPRS; WORD wBeaconIntervall; } Main_sTimer1, *ps = &Main_sTimer1; /* CW-Zeichen-Kodierung: jedes Zeichen besteht aus zwei BYTE und wird bitweise zusammengesetzt; Bsp.: "A" ( . _ ) => b1011100000000000 */ BYTE Main_rgbCWZeichen[BULLETIN_LENGTH] = { 0x57,0x5C,0xC5,0xDD,0xDD, 0x51,0xC5,0x5D,0x74,0x07 }; #define BEEP_CHARACTER 0x10 /* Punkt mit Pause davor und danach */