finally it works.... i would like to ask how i can pass this code to microcode studio and execute the labels that i want(and interrupts)?
finally it works.... i would like to ask how i can pass this code to microcode studio and execute the labels that i want(and interrupts)?
below is my sample fsk decoder similar to above code.i would like to ask how can i check if it is in phase or not and how i can read the bits that receiving in main programm? i upload also the specific assembly code for checking the phase.
thanks
in your asm code... ; if sample = inphase then donothing
think about it a little bit![]()
Steve
It's not a bug, it's a random feature.
There's no problem, only learning opportunities.
I stack now. I know that one sitor bit is 10msec. so i use tmr0 to find if it is in phase with samples, but how i know if i am in the start of sitor bit or in 3 msec after? I say that 10 samples is 1 sitor bit ok but i don't know if i start from the begining.Can you explain it to me mister_e?
Here's a tips on how to mix ASM and PBP.
You define your variable in PBP, then you access them in ASM. Possible to use the other way... BUT not 100% sure if this is safe though... sure it isn't 'cause you can't know for sure where PBP will place it's own variables.Code:' Using PIC16F88 @ DEVICE INTRC_OSC, LVP_OFF, WDT_OFF, MCLR_OFF DEFINE OSC 4 OSCCON=%01101000 ANSEL=%00000000 CMCON=%00000111 trisa = %11111111 trisb = %00000001 DEFINE HSER_RCSTA 90h ' Enable serial port & continuous receive DEFINE HSER_TXSTA 24h ' Enable transmit, BRGH = 1 DEFINE HSER_SPBRG 25 ' 9600 Baud @ 4MHz, 0.16% DEFINE HSER_CLROERR 1 ' Clear overflow automatically CounterA var byte BANK0 CLEAR Start: asm CHK?RP PORTB BTFSC PORTB,0 GOTO $-1 INCF _CounterA,F ENDASM HSEROUT ["CounterA=",DEC CounterA,13,10] PAUSE 200 GOTO START
Last edited by mister_e; - 1st April 2008 at 20:49.
Steve
It's not a bug, it's a random feature.
There's no problem, only learning opportunities.
Thanks for your reply mister_e. Tomorrow i will try in PBP and i will tell you my results.
i am using darrel's interrupts and 20MHz crystal. With mister_e calculator i found that i want prescaler 1:32 and preload 99 into tmr0.I don't know how to preload the value into timer.below i have the interrupt routine of my program. Is this correct for preload the value?
'---[TMR0 - interrupt handler]--------------------------------------------------
Tick0: ;every 1ms occurs
;make space for new sample
cp_old=cp_new ;save old value
cp_new.highbyte=CCPR1H ;take new capture
cp_new.lowbyte=CCPR1L
gosub samplebit ;take the sample bit
TMR0=99
@ INT_RETURN
thanks
Bookmarks