After upgrading to BasicTools with floating point (Kernel[7.53], ARMbasic[9.33a]), I can no longer control the I/O pins on my ARMite boards. Programs are flashed without errors, but simple toggle output routines can not change the state of the pins - they stay low, except for IO(15) which stays high.
DIM i AS INTEGER
MAIN:
i=0
FOR i=0 TO 15
output(i)
PRINT "Set pin ";i;" as output"
NEXT i
While 1
For i=0 to 15
out(i)=1
next i
wait(500)
for i=0 to 15
out(i)=0
Next i
wait(500)
loop
A simple read SPDT switch bank routine always reads 00100010 regardless of switch position
DIM i AS INTEGER
DIM x AS INTEGER
MAIN:
FOR i=0 TO 7
INPUT(i)
NEXT i
WHILE 1
x=0
FOR i=7 DOWNTO 0
x <<= 1
x += (IN(i) AND 1)
PRINT IN(i) AND 1;
NEXT i
PRINT " ";x
WAIT(1000)
LOOP
Do I need to work with the LPC2103 registers directly or I am missing something obvious like an Include file?
ARMite I/O not working after upgrade
Re: ARMite I/O not working after upgrade
I think the clue here is the Kernal version 7.53, which I think shows you put the PRO firmware on an ARMmite, which does not do any remapping of IOs, so you have the wrong firmware on the device.
How did you do the update?
Looking thru my releases, the Mite should be 7.65 or some of the preliminary releases at 7.56
How did you do the update?
Looking thru my releases, the Mite should be 7.65 or some of the preliminary releases at 7.56
Re: ARMite I/O not working after upgrade
Thanks, that makes sense. I originally had 8 units I bought in 2008 and when I bought 10 more last year, Coridium gave me access to an update file which I then downloaded and used to update all of the devices. Someone from tech support walked me through the steps over the phone, so I am not sure how I might have gotten the wrong version. I suppose the quickest solution is to update the firmware, although it looks like a long series of #define commands might work for digital I/O (except the DIR command). I would like to make use the include .bas files without having to rewrite them using LPC2103 register access.