PDA

View Full Version : DT_INTS-14 (Blinky Light) Help ?



andybarrett1
- 3rd November 2015, 19:40
Hi All

I have a little bit of code running on a 16f688 all running great.... I have since added DT's blinky Light code, I have used before all good.... But this time I am losing my Digital Output port RC3 and my ADC Channel AN1.

I remove the Blinky code and my prog works again.

Any Ideas

Anyone

Thank you for reading

BR
Andy

mark_s
- 3rd November 2015, 20:25
Hi

Did you set the ansel register?

See the data sheet for which bits control your I/O pins



ANSEL = %00000001 'for digital set to 0 and for analog 1


also post your code so we don't have to guess

andybarrett1
- 4th November 2015, 09:44
Sorry I forgot to add the code :-

Any ideas on what I am missing welcome, The two includes are in place and are being used !

Is placement important ?



Thank you




'************************************************* ***************
'* Name : TRIP.BAS *
'* PIC : PIC16F688 *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2015 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 29/10/2015 *
'* Version : 2.0 *
'* Notes : 322 Words used *
'* : Now has Trip Delay Link *
'* : and Interupt for flash led * *
'* Process Signal AN0 *
'* Alarm Preset AN1 *
'* Trip Preset AN2 *
'* Flash LED RC1 *
'* Delay Trip Lnk RC2 *
'* Alarm Relay RC3 *
'* Trip Relay RC4 *
'* Reset Trip P/B RC5 *
'************************************************* ***************

DEFINE OSC 8 ' Set RC Clock to 8 Megs

wsave var byte $70 SYSTEM

'Define ADCIN parameters
Define ADC_BITS 10 ' Set number of bits in result
Define ADC_CLOCK 3 ' Set clock source (3=rc)
Define ADC_SAMPLEUS 50 ' Set sampling time in uS
ADCON0 = %10000001 ' Enable ADC / Right justify result (1023)
ANSEL = %00000111 ' Enable ADC channels AN2-AN0
CMCON0 = %10000111 ' Disable both comparators

'Analogs
PROC_SIG Var word ' Create PROC_SIG to store result
ALARM_TRIM Var word ' Create ALARM_TRIM to store result
TRIP_TRIM Var word ' Create TRIP_TRIM to store result

'Digitals
ALARM_RLY VAR PORTC.3 ' Alarm Relay
TRIP_RLY VAR PORTC.4 ' Trip Relay
TRIP_RST VAR PORTC.5 ' Trip Reset PB
TRIP_DLY VAR PORTC.2 ' Trip Delay Link
FLASH_LED var PORTC.1 ' Flashy LED

'Constants
RLY_OFF CON 0 ' Relay Off
RLY_ON CON 1 ' Relay On
HYS CON 8 ' 25 = 1/8Volt

INCLUDE "DT_INTS-14.bas" ' Base Interrupt System
INCLUDE "ReEnterPBP.bas" ' Include if using PBP interrupts

ASM
INT_LIST macro ; IntSource, Label, Type, ResetFlag?
INT_Handler TMR1_INT, _ToggleLED1, PBP, yes
endm
INT_CREATE ; Creates the interrupt processor
ENDASM

T1CON = $31 ; Prescaler = 8, TMR1ON
@ INT_ENABLE TMR1_INT ; enable Timer 1 interrupts



MAIN:

START:
LOW TRIP_RLY ' Ensures Trip Rly off
'LOW ALARM_RLY ' Ensures Alarm Rly off

Gosub ANALOG_READ
If (ALARM_RLY = RLY_OFF) AND (PROC_SIG >= (ALARM_TRIM + HYS)) THEN ALARM_RLY = RLY_ON
If (ALARM_RLY = RLY_ON) AND (PROC_SIG <= (ALARM_TRIM - HYS)) THEN ALARM_RLY = RLY_OFF
If (TRIP_RLY = RLY_OFF) AND (PROC_SIG >= (TRIP_TRIM)) and TRIP_DLY = 0 THEN goto D_TRIP
If (TRIP_RLY = RLY_OFF) AND (PROC_SIG >= (TRIP_TRIM)) AND TRIP_DLY = 1 THEN goto L_TRIP
GOTO START


L_TRIP: ' Latching Trip
high TRIP_RLY ' Latch Trip Relay
IF TRIP_RST = 0 THEN GOTO START 'Release If PB Reset Pressed
Goto L_trip

D_TRIP: ' Delayed Trip
HIGH TRIP_RLY ' Latch Trip Relay
PAUSE 1000 ' Pause for T_Delay
GOTO START

ANALOG_READ: ' Read analogs
ADCIN 0, PROC_SIG ' Read channel 0 to PROC_SIG
Pause 2 ' ADC Settle time
ADCIN 1, ALARM_TRIM ' Read channel 1 to ALARM_TRIM
Pause 2 ' ADC Settle time
ADCIN 2, TRIP_TRIM ' Read channel 2 to TRIP_TRIM
Pause 2 ' ADC Settle time
RETURN

goto MAIN

'---[TMR1 - interrupt handler]--------------------------------------------------
ToggleLED1:
TOGGLE FLASH_LED
@ INT_RETURN

mark_s
- 4th November 2015, 16:05
I don't see any tris statements? I know PBP sets some automatically, but it is a good habit
to manually set them.

Acetronics2
- 4th November 2015, 19:54
DEFINE OSC 8 ' Set RC Clock to 8 Megs

that doesn't set any clock ... just tell the compiler to adjust the timings for a 8 Mhz clock ...

sooo, clock settings are missing ...

default settings are ...



#CONFIG
__config _INTRC_OSC_NOCLKOUT & _WDT_ON & _MCLRE_ON & _CP_OFF
#ENDCONFIG


is that what you want ???

Alain

andybarrett1
- 4th November 2015, 21:28
Stand down folks..... I sorted it :-

LOW ALARM_RLY ' Ensures Alarm Rly off

Was commented out.... I forgot to put it back.

Thanks for all suggestions .... Appreciated as always

BR
Andy