by billyzelsnack » Tue Feb 06, 2007 5:19 am
by billyzelsnack
Tue Feb 06, 2007 5:19 am
Geez. I have not had any opportunity to work on this stuff for a week. Not 2 minutes in tonight and I think I bricked my CM5.
I uploaded a new hex program I quickly wrote to test some stuff and when I hit reset after I uploaded the hex, it printed out something like..
Jumped to 0x00000
What's that all about?
I tried to reset with #'s and resets, but nothing.
Here's the program..
- Code: Select all
while(1)
{
for( ii=0; ii<18; ii++ )
{
if( ii!=5 ){continue;}
if( ( ii==4 ) || (ii==6) ){continue;}
bID=ii;
gbpParameter[0] = 0; //Reading Address
gbpParameter[1] = 49; //Read Length
bTxPacketLength = TxPacket(bID,INST_READ,2);
bRxPacketLength = RxPacket(DEFAULT_RETURN_PACKET_SIZE+gbpParameter[1]);
if(rawPacketLength!=0)
{
writeRawPacketToPC(bRxPacketLength, gbpRxBuffer);
}
}
}
After looking at the code I notice the obvious bug that it will never write any data to PC, so it basically just sits in a tight loop getting data from servo 5. Still, I should be able to access the bootloader shouldn't I?
Any ideas on solutions to fix this? I really wanted to get it working without having to add any extra hardware, but I highly doubt that I will throw out $50 on another CM5. I'll just go ahead, build an interface cable, and talk to the servos directly now I guess.
Geez. I have not had any opportunity to work on this stuff for a week. Not 2 minutes in tonight and I think I bricked my CM5.
I uploaded a new hex program I quickly wrote to test some stuff and when I hit reset after I uploaded the hex, it printed out something like..
Jumped to 0x00000
What's that all about?
I tried to reset with #'s and resets, but nothing.
Here's the program..
- Code: Select all
while(1)
{
for( ii=0; ii<18; ii++ )
{
if( ii!=5 ){continue;}
if( ( ii==4 ) || (ii==6) ){continue;}
bID=ii;
gbpParameter[0] = 0; //Reading Address
gbpParameter[1] = 49; //Read Length
bTxPacketLength = TxPacket(bID,INST_READ,2);
bRxPacketLength = RxPacket(DEFAULT_RETURN_PACKET_SIZE+gbpParameter[1]);
if(rawPacketLength!=0)
{
writeRawPacketToPC(bRxPacketLength, gbpRxBuffer);
}
}
}
After looking at the code I notice the obvious bug that it will never write any data to PC, so it basically just sits in a tight loop getting data from servo 5. Still, I should be able to access the bootloader shouldn't I?
Any ideas on solutions to fix this? I really wanted to get it working without having to add any extra hardware, but I highly doubt that I will throw out $50 on another CM5. I'll just go ahead, build an interface cable, and talk to the servos directly now I guess.