'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2014 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 5/8/2014 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
Device = 18F24K22
Xtal 8
Optimiser_Level 1
Declare Reminders = OFF
Stack_Size = 10
Declare Adin_Res 10
Declare Adin_Tad 16_FOSC
Declare Adin_Stime 50
'Change to 0x2000 to fail compile, and 0x1f00 to pass
Declare PROTON_START_ADDRESS = $0x1f00
'I/O port settings
TRISA = %11111111
TRISB = %00010101
TRISC = %11111001
'Internal oscillator
' OSCCON = %11100000
' OSCCON2 = %00000100
' OSCTUNE = %00000000
'Default interrupts
INTCON = %00000000
INTCON2 = %00000000
INTCON3 = %00000000
PIE1 = %00000000
PIE2 = %00000000
PIE3 = %00000000
PIE4 = %00000000
PIE5 = %00000000
'Serial settings
Declare Hserial_Baud = 9600
Declare Hserial_RCSTA = %10010000
Declare Hserial_TXSTA = %00100100
SPBRG = 51 '25 = 4mhz
Symbol RCIF = PIR1.5
Symbol OERR = RCSTA1.1
'SPI Master settings
SSP2CON1 = %00110010
Symbol SSPIF = PIR3.7
Symbol CS1 = PORTB.7
Symbol CS2 = PORTB.6
Symbol LED = PORTB.0
'ADC settings
ADCON0 = %00000001
ADCON1 = %00000000
ADCON2 = %10110101
Symbol start_adc = ADCON0.1
ANSELA = %00101111
ANSELB = %00010101
ANSELC = %00001000
'CCP settings
CCP2CON = %00001100 'PWM output on RC1
PR2 = 255 '8khz
PSTR1CON = %00000000
Dim fp_duty As CCPR2L
Symbol meth_out = PORTB.5
meth_out = 0
CCPTMRS0 = %00000000 'Timer5 for CCP2
CCPTMRS1 = %00001000
CCP5CON = %00000111 'Capture every 16th edge
Symbol maf_sample = CCPR5.Word
Symbol maf_flag = PIR4.2
PIE4.2 = 1 'Enable interrupt on CCP5 capture
'Internal DAC
VREFCON0 = %00000000
VREFCON1 = %00000000
'Timer settings
T0CON = %10000101
Dim Timer0 As TMR0L.Word
Symbol T0IF = INTCON.2
T1CON = %00000011
Dim Timer1 As TMR1L.Word
T2CON = %00000100
Dim Timer2 As TMR2
T3CON = %00000011
Dim Timer3 As TMR3L.Word
Symbol T3IF = PIR2.1
T5CON = %00110011
Dim Timer5 As TMR5L.Word
Dim tempf1 As Float
Dim tempf2 As Float
Dim tempf3 As Float
Dim tempf4 As Float
Dim tempf5 As Float
Dim tempf6 As Float
Dim tempf7 As Float
Dim tempf8 As Float
Dim tempf9 As Float
Dim tempf10 As Float
Dim tempf11 As Float
Dim tempf12 As Float
Dim tempf13 As Float
GoTo LOOP
'********************************************************************************************************************************************************
LOOP:
'If communications are locked up, unlock
If OERR = 1 Then
Clear RCSTA.4
Set RCSTA.4
EndIf
GoTo LOOP