ATMega неверный аргумент функции
Я пишу прошивку для AT90CAN32, используя AVR Studio + WinAVR. Это кажется простым для опытных программистов 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
файл. Что не так с этим кодом?