我在尝试使用Atmel的新SAMC21 Xplained Pro时遇到了麻烦。我目前正在尝试了解Cortex M0 +的基础知识,但我坚持了下来。我在Atmel Studio中使用ASF。我从基础开始,学习如何用开关切换LED。这是Atmel的代码,完美无瑕:
void configure_port_pins(void)
{
struct port_config config_port_pin;
port_get_config_defaults(&config_port_pin);
config_port_pin.direction = PORT_PIN_DIR_INPUT;
config_port_pin.input_pull = PORT_PIN_PULL_UP;
port_pin_set_config(BUTTON_0_PIN, &config_port_pin);
config_port_pin.direction = PORT_PIN_DIR_OUTPUT;
port_pin_set_config(LED_0_PIN, &config_port_pin);
}
int main (void)
{
system_init();
configure_port_pins();
while (true) {
bool pin_state = port_pin_get_input_level(BUTTON_0_PIN);
port_pin_set_output_level(LED_0_PIN, !pin_state);
}
然后我想尝试更简单的事情,比如:
int main (void)
{
system_init();
configure_port_pins();
port_pin_set_output_level(LED_0_PIN,0);
while (1)
{
port_pin_set_output_level(LED_0_PIN,0);
delay_ms(500);
port_pin_set_output_level(LED_0_PIN,1);
}
}
但它不起作用。它不能识别bool数据类型。也许我错过了什么。谢谢你的回答。
答案 0 :(得分:1)
你认为代码不能正常工作,因为led一直处于开启状态(或关闭,这取决于硬件的连接方式)?这是因为你在第二次改变后没有睡觉,所以输出等级1只设置了一小段时间(确切地说,port_pin_set_output_level
执行的时间),你的眼睛不够快看到它。