// '***************************************************** '*** Datv commander for SR-system DATV transmitter *** '*** Charles Monod HB9VJS 2005 hb9vjs@arrl.org *** '*** For testing purpose only have fun! *** '***************************************************** ' DEFINE OSC 20 ' ' DEFINE LCD_DREG PORTB DEFINE LCD_DBIT 0 DEFINE LCD_RSREG PORTB DEFINE LCD_RSBIT 5 DEFINE LCD_EREG PORTB DEFINE LCD_EBIT 4 DEFINE LCD_BITS 4 DEFINE LCD_LINES 2 'DEFINE LCD_COMMANDUS 2000 'DEFINE LCD_DATAUS 50 ADCON1=7 LCDOut $FE,1 LCDOut $FE,$80 LCDOut "DATV cmd" LCDOut $FE,$C0 LCDOut "HB9VJS " Pause 1000 LCDOut $FE,$C0 LCDOut "Vers. 1.0" Pause 1000 touche1 VAR PORTA.2 touche2 VAR PORTA.3 touche3 VAR PORTA.4 Input touche1 Input touche2 Input touche3 baud CON 32 tx VAR PORTB.6 rx VAR PORTB.7 menupointer VAR WORD menupointer = 2500 frequence VAR WORD frequence =menupointer/2 'rotary encoder stuff' OldA VAR BYTE ' Previous state of encoder A bits NewA VAR BYTE ' Current state of encoder A bits DirectionA VAR BIT ' Direction of encoder A travel; 1=CCW. zza6 VAR NewA.0 ' the first bit zza15 VAR OldA.1 ' the second bit PositionA VAR WORD ' 0 to 65536 true CON 1 false CON 0 chara VAR BYTE charb VAR BYTE Pause 200 MainLoop: OldA = NewA NewA = PORTA & %000011 IF NewA <> OldA Then GoSub ChangedA IF touche1=0 Then ' push encoder button to send F to SR ' frequence =menupointer/2 SerOut2 tx,baud,[DEC frequence,"f"] Pause 250 EndIF IF touche2=0 Then ' push for FEC change (to be tested) LCDOut $FE,1 LCDOut $FE,$80 LCDOut DEC menupointer/2," Mhz" SerOut2 tx,baud,["F"] SerIn2 rx,baud,3000,MainLoop,[WAIT("FEC"),skip 6,DEC1 chara,skip 1,DEC1 charb] LCDOut $FE,$C0 LCDOut "Fec= ",chara,"/",charb EndIF IF touche3=0 Then ' push for inversion ' to be implemented soon EndIF //