AVR Studio + WinAVR を使って AT90CAN32 用のファームウェアを書いています。経験豊富な AVR プログラマにとっては簡単に思えます。関数に引数を渡しint
ますが、関数内では常にゼロです。内部protocol.c
ファイルがあります:
#include <uart.h>
static char packet[16] = ":AA111122223!f\r\n";
void vDivRequesting(void)
{
uint8_t cntOfBms = getCountOfBms( );
for(uint8_t i=0; i<cntOfBms; i++)
{
createPacket(getBmsNetworkNumber(i), REQUEST_V_DIV, 1);
usartSendString(packet,11);
_delay_ms(200);
}
}
uart.c ファイルがあります。
void usartSendString( char *data, uint8_t len )
{
uint8_t i=0;
usartSendByte(len + 0x30);
for( i=0; i<len; i++)
{
usartSendByte(*data);
*data++;
}
}
len
そして、引数がゼロであることを私に出力します。usartSendString
関数はuart.h
ファイルで定義されています。そのコードの何が問題になっていますか?