Tuesday, January 31, 2012

Propeller Beacon Update

I have taken the baseline beacons that I have created for QRSS, WSPR and Opera and put them together into a single beacon.

WSPR is on a 10 minute cycle (TX Percent = 20%).  QRSS follows and just sends my call sign.  Opera then follows and the remainder of the 10 minute cycle is idle.  WSPR goes first because it has the even minute starting time requirement.

I have created each of the beacons as separate objects that the main beacon code can instantiate and call.  The main beacon code looks like this:

CON
  _CLKMODE = XTAL1 + PLL16X
  _XINFREQ = 5_000_000

  WMin     =       381        'WAITCNT-expression-overhead Minimum

OBJ
  WSPR  : "ko7mBeaconWSPR"
  QRSS  : "ko7mBeaconQRSS"
  Opera : "ko7mBeaconOpera"
  Clock : "ko7mClock"
  Freq  : "Synth"
 
VAR
  LONG Sync


PUB Main
  doInitialize
  repeat
    WSPR.doBeacon               ' 2 minutes (110.6 seconds) for WSPR
    delay(10000)                ' Delay 10 seconds before doing QRSS
    QRSS.doBeacon               ' QRSS is about 3 minutes
    delay(10000)                ' Delay 10 seconds before doing Opera
    Opera.doBeacon              ' Opera is about 3 minutes
    repeat while Clock.getSeconds // Sync
      delay(100)  


PUB doInitialize
  Sync := 10 * 60               ' Beacons cycle every 10 minutes
  Clock.Start


PUB delay(Duration)
  waitcnt(((clkfreq / 1_000 * Duration - 3932) #> WMin) + cnt)


The beacon is up and running as of now.  I would love to have any reports if anyone is able to spot any of my three beacons.

No comments:

Post a Comment