Archangel
- 2nd February 2007, 00:48
Hello Everyone,
Still in an effort to understand this programming language, I now am playing with DIV32.
I have taken the code from the manual and added some serial routines so I can view whats happening. I have posted the code below.
' Use MPASM
@MyConfig = _HS_OSC & _WDT_OFF & _PWRTE_ON & _MCLRE_ON & _LVP_OFF
@MyConfig = MyConfig & _CP_OFF & _BODEN_OFF & _DATA_CP_OFF
@ __config MyConfig
Define PIC16F628A
define OSC 20
include "modedefs.bas"
a var word
b var word
c var word
Dummy var word
start:
b = 500
c = 1000
disable '
dummy = b * c
a = div32 100
enable
serout PortB.4,T9600,[254,1]
pause 100
serout PortB.4,T9600,[254,128,"dummy is:",# Dummy]
pause 1000
serout PortB.4,T9600,[254,192,"A is:", # a]
pause 1000
serout PortB.4,T9600,[254,148,"B is:", # b]
pause 1000
serout PortB.4,T9600,[254,212,"C is:", # c]
pause 1000
goto start
end
The code does what the book says it should do. I have a couple of questions:
the line, a = DIV32 100 . I get that the 100 causes DIV32 to divide by 100, what I do not get is how DIV32 knows to use the math in the above formula, is "Dummy " a default place holder? My second question is the value of Dummy as outputted in line 1 of the display, I get the fact, 5 hundred thousand is too large for 16 bits to hold but 41248 makes no sense to me, can anyone explain?
Thank You
JS
Still in an effort to understand this programming language, I now am playing with DIV32.
I have taken the code from the manual and added some serial routines so I can view whats happening. I have posted the code below.
' Use MPASM
@MyConfig = _HS_OSC & _WDT_OFF & _PWRTE_ON & _MCLRE_ON & _LVP_OFF
@MyConfig = MyConfig & _CP_OFF & _BODEN_OFF & _DATA_CP_OFF
@ __config MyConfig
Define PIC16F628A
define OSC 20
include "modedefs.bas"
a var word
b var word
c var word
Dummy var word
start:
b = 500
c = 1000
disable '
dummy = b * c
a = div32 100
enable
serout PortB.4,T9600,[254,1]
pause 100
serout PortB.4,T9600,[254,128,"dummy is:",# Dummy]
pause 1000
serout PortB.4,T9600,[254,192,"A is:", # a]
pause 1000
serout PortB.4,T9600,[254,148,"B is:", # b]
pause 1000
serout PortB.4,T9600,[254,212,"C is:", # c]
pause 1000
goto start
end
The code does what the book says it should do. I have a couple of questions:
the line, a = DIV32 100 . I get that the 100 causes DIV32 to divide by 100, what I do not get is how DIV32 knows to use the math in the above formula, is "Dummy " a default place holder? My second question is the value of Dummy as outputted in line 1 of the display, I get the fact, 5 hundred thousand is too large for 16 bits to hold but 41248 makes no sense to me, can anyone explain?
Thank You
JS