この関数を使用して単一の文字を操作する Atmega32 に接続された LCD があります。
void send_char(uint8_t c){
PORTD = c; // set the output pins to the ascii value of the char
PORTB |= 0x05;
_delay_us(1);
PORTB &= 0xfa;
_delay_us(60);
PORTD = 0x00;
update_cursor();
}
文字を引数としてこれを呼び出すことができます。これはsend_char('a');
機能します。
次に、 send_string 関数をラップしてみました。
void send_string(const char * msg){
while (*msg != '\0'){
send_char(*msg++);
}
}
これは、ASCII 値が大きくずれていることを示す意味不明なメッセージを LCD に表示するだけです。また、空の文字列 ( send_string("")
) を渡そうとすると、少なくとも 3 つの意味不明な文字が LCD に表示されます。