PDA

View Full Version : using counter using basic



islambadr
- 18th May 2006, 14:45
How to use counter in pic16f628 using picbasic pro?

mister_e
- 18th May 2006, 15:13
Wich counter? The PIC TIMER0,1,2?



'
' PIC Configuration
' =================

@ __CONFIG _HS_OSC & _MCLRE_ON & _LVP_OFF & _WDT_OFF & _PWRTE_ON & _BODEN_ON
DEFINE OSC 20
'
' Hardware configuration
' ======================
TRISB=%11111111 ' PORTB<7:0> => all set to input
T1CON = %00000110 ' TIMER1 counter :
' Prescaller 1:1
' Oscillator shut off
' no synchronisation
' use PORTB.6 as clock input

'
' Variables/Alias definition
' ==========================
TMR1ON VAR T1CON.0
CounterA VAR WORD

Start:
TMR1L=0 ' Clear
TMR1H=0 ' Counter
'
TMR1ON=1 ' Start counter
PAUSE 1000 ' Sampling time
TMR1ON=0 ' Stop counter
'
CounterA.HIGHBYTE=TMR1H ' Get results
CounterA.LOWBYTE=TMR1L '
'
' Blah blah blah
'
goto start

sayzer
- 20th August 2006, 14:43
Hi Steve,

I have succesfully set up Timer0 and Timer1 as counters individually working in the background (F877).

As I need one more counter, and went through the Data Sheet, how do I set Timer2 as a counter?

Data sheet says in "Microcontroller Core Features" that "Timer2: 8-bit timer/counter with 8-bit period register, prescaler and postscaler".

However, there is no mention of counter in "7.0 TIMER2 MODULE" section in the data sheet.

Am I missing a key point here, and thus Timer2 can not be used as a counter from an external source?


Thanks in advance.

---------

mister_e
- 20th August 2006, 20:13
From what i remind, Timer2 is unfortunately just a timer and have something to do with the HPWM and CCP2 module.. not a counter. But timer0, timer1 can be used as counter.

In your case you could also use any interrupt source and increment a variable in the ISR.