Thank you very much!
I must add TRISA = 0 to the begin of code, and then start work great.
One more time, thank you, Damir.
Thank you very much!
I must add TRISA = 0 to the begin of code, and then start work great.
One more time, thank you, Damir.
Darrel,
While poking around and getting ideas, I got to looking at ver 1.2 of "Elapsed_INT-18.bas". I was particularly interested in the nice routine to calculate the timer reload constant:
But, I think there is an error in the formula. The absolute time it takes to execute the 8 instruction cycles doesn’t change. But, the time in relation to the TMR1L will be proportional to the prescaler. So, that should be accounted for in the formula, as such:Code:' -------------- calc timer reload Constants ------------------------------- ASM T1PS = 1 ; start with 1:1 postscaler TimerConst = ((OSC*1000000)/4/100) ; how many timer ticks will it take while TimerConst > 65400 ; if it's more than the timer can count T1PS = T1PS * 2 ; double the postscaler TimerConst = TimerConst / 2 ; halve the count endw TimerConst = 65536 - TimerConst + 8 ; final reload value
Since it's not likely the prescaler will need to be above 1:8, the 8/T1PS shouldn’t get too low.Code:TimerConst = 65536 - TimerConst + (8/T1PS) ; final reload value
Thanks again for your great work and inspiring examples,
Steve
Last edited by SteveB; - 5th December 2012 at 22:38. Reason: typo
The code could also be changed thus, not that it makes a difference:
Code:T1PS = 1 ; start with 1:1 postscaler TimerConst = ((OSC*1000000)/4/100)+8 ; how many timer ticks will it take while TimerConst > 65400 ; if it's more than the timer can count T1PS = T1PS * 2 ; double the postscaler TimerConst = TimerConst / 2 ; halve the count endw TimerConst = 65536 - TimerConst ; final reload value
Hi Darryl,
Currently getting an error with Latest MPLAB IDE:
MPLAB 8.90.00.00
PIC is an 18F45K22 and DT_INTS-18 is latest from your website, both MPLAM and DT_INTS were downloaded from the respective sites on 15/3/2013
ERROR: Unable to execute mpasmwin.Warning[206] M:\<FOLDERPATH><FILE>ASM 2170 : Found call to macro in column 1. (INT_ENABLE)
Error[116] M:\<FOLDERPATH><FILE>.ASM 696 : Address label duplicated or different in second pass (Z00032)
Error[116] M:\<FOLDERPATH><FILE>.ASM 759 : Address label duplicated or different in second pass (Z00033)
Error[116] M:\<FOLDERPATH><FILE>.ASM 812 : Address label duplicated or different in second pass (Z00034)
Error[116] M:\<FOLDERPATH><FILE>.ASM 843 : Address label duplicated or different in second pass (Z00035)
Can you advise if there is any fix for this or do i need to use an older version of MPLAB IDE
You might try here
http://support.melabs.com/threads/11...hlight=MPLAB-X
Dave
Always wear safety glasses while programming.
I've used the DT_INTS sucessfully with an 18F4550. I had to move to an 18F87J50 but the DT_INTS would not compile. Not sure if I'm doing something wrong or if the DT_INTS was never tested with J series PIC's. When I compile, I get the following warning message:In the "VirtualPort.bas" code, I changed this code:Code:Unable to fit variable VP_DelayCount in requested bank 0
to this:Code:VP_DelayCount VAR WORD BANK0 ; Used for internal Delay only
and it compiled as expected. I have no clue if this will cause unexpected problems with my program or if this is the correct way to solve it but I haven't noticed any ill effects yet. Seems like this problem could be related to the SFR's but it's way above my level of knowledge.Code:VP_DelayCount VAR WORD BANK1 ; Used for internal Delay only
Just thought I'd pass it along.
NO! You can't just change the variable to BANK1!
That variable must be in BANK0.
Both DT_INTS-18 and VirtualPort.bas fit quite comfortably in an 18F87J50, with room to spare. Even when using PBPL.
How many variables have you declared in BANK0 in your program?
Or, what other include files are you using that may have variables placed in BANK0.
DT
Bookmarks