Anyway, back to the template which it looks like this:
- Code: Select all
' ====== NO BOOTLOADER APPLICATION SKELETON =======================
' ______________ Firewing16 PRO R3 - proposal _______________________
' As firewing16 pro device, you use one of these micros:
' 33EP128MC502,33EP256MC502,33EP512MC502,33EP128MC202,33EP256MC202,
' 33EP512MC202
' 24EP128MC202,24EP256MC202,24EP512MC202
device = 33EP512MC502
clock = 140 ' (MHz) = 70MIPS - don't touch this line of code !!!
' config statements for dsPIC33EP micro without bootloader
' - to edit the pickit2 devices as there is already a
' 33EP32GP202 device...
#if _device in (33EP128MC502,33EP256MC502,33EP512MC502,33EP128MC202,33EP256MC202,33EP512MC202,24EP128MC202, 24EP256MC202, 24EP512MC202)
config FGS = {GCP_OFF, GWRP_OFF}
config FOSCSEL = {FNOSC_PRIPLL, IESO_OFF}
config FOSC = {FCKSM_CSDCMD, IOL1WAY_OFF, OSCIOFNC_OFF, POSCMD_XT}
config FWDT = {FWDTEN_OFF}
config FPOR = {ALTI2C2_ON}
config FICD = {ICS_PGD1, JTAGEN_OFF}
#endif
External sub PPSLock()
External sub PPSUnlock()
public dim LockPPS() as PPSLock
public dim UnlockPPS() as PPSUnlock
macro SetSysClock()
asm
mov #12288,w0
mov w0,_CLKDIV
clr _OSCTUN
clr _REFOCON
mov #68,w0
mov w0,_PLLFBD
clr _PMD1
clr _PMD2
clr _PMD3
clr _PMD4
clr _PMD6
clr _PMD7
end asm
while (OSCCON.bits(5) = 0) ' LOCK
end while
end macro
sub AttachRX2ToRB4()
end sub
sub DetachRX2FromRB4()
end sub
sub AttachTX2ToRA4()
end sub
sub DetachTX2FromRA4()
end sub
sub EnableUart2()
end sub
sub EnableSPI1()
end sub
sub EnableSysTick()
end sub
sub EnableI2C2()
end sub
' this code executes when the PIC first starts up
sub OnStartup() handles PIC.OnStartup
SetSysClock()
' clear pull-ups, pull-downs
CNPDA = 0
CNPDB = 0
CNPUA = 0
CNPUB = 0
' clear open-drain
ODCA = 0
ODCB = 0
' set all pins digital
ANSELA = 0
ANSELB = 0
UnlockPPS()
'Unlock
RPINR19 = &H0024 ' map Uart2 RX to RB.4
RPOR0 = &H0003 ' map Uart2 TX to RA.4
LockPPS()
end sub
'program entry point...
sub Main()
' code your app bellow...
end sub
Can anyone throw and eye and see if it is correct? I bet on the C generated code, not on the hex, even if the code compiles on the Firewing16 toolchain, I don't expect to be correct, at least at the initialization code... And unfortunately, not yet a micro to test... hard to find at my place... It will take a while until I get my hands on one...
Thank you very much!