私のprjectでサムホイールを使用しています。私は受信機がそれで何かをすることができるようにシリアルにデータを一度送る必要があります。しかし、私が作ったコードはシリアルに連続してデータを送っています。誰かが私に啓発してもらえますか? AVR btwを使用しています。Thumbwheelデータをシリアルに一度だけ送信します
は、ここではそれが変化したときに毎回fii
送信する場合それは十分なものでなければならない私のcode`
uint8_t fii = 0;
uint8_t previousfii = 0;
int main(void)
{
setUp32MhzInternalOsc();
setUpSerial();
stdout = &usart_output;
stdin = &usart_input;
//thumbwheel 2B
PORTF.DIRCLR = PIN1_bm;
PORTF.PIN1CTRL = PORT_OPC_PULLUP_gc;
PORTF.DIRCLR = PIN2_bm;
PORTF.PIN2CTRL = PORT_OPC_PULLUP_gc;
PORTF.DIRCLR = PIN3_bm;
PORTF.PIN3CTRL = PORT_OPC_PULLUP_gc;
while(1)
{
//thumbwheel 2B
if (!(PORTF.IN&PIN3_bm))
{
if (fii != 1)
{
fii = fii+1;
}
}
if (!(PORTF.IN&PIN1_bm))
{
if (fii != 2)
{
fii = fii+2;
}
}
if (!(PORTF.IN&PIN2_bm))
{
if (fii != 4)
{
fii = fii+4;
}
}
printf("%d\n", fii);
fii = 0;
//_delay_ms(500);
}
}
「1回だけ」はおそらくあなたが望むものではありません。ピンの1つが変わったときにデータを送信したいのですか? –
はい..それは私の男の先生 –
私を助けることができますか? –