我想重命名一个端口的一个位

时间:2015-09-16 05:42:31

标签: avr atmel

我需要重命名一个端口的代码是什么?如下:

string 'string'

我正在使用Avr studio 6 IDE。用c编译器。

2 个答案:

答案 0 :(得分:0)

您不能直接访问该位,而是可以使用宏来读取或写入引脚。

阅读宏

#define __READ_PIN__(PORT, PIN)    (PORT & (1>>PIN))

写宏

#define __SET_PIN__(PORT, PIN)     (PORT |= (1 << PIN))
#define __CLEAR_PIN__(PORT, PIN)   (PORT &= ~(1 << PIN))

然后你可以定义像

这样的引脚
#define EN_PORT    PORTD
#define EN_PIN     PD0    // OR (#define EN_PIN    0)
#define RS_PORT    PORTD
#define RS_PIN     PD1    // OR (#define RS_PIN    1)

然后您可以使用读取或写入引脚宏来访问此引脚

__SET_PIN__(EN_PORT, EN_PIN);    // Output logic 1 on EN pin
__CLEAR_PIN__(RS_PORT, RS_PIN);  // Output logic 0 on RS pin

并且不要忘记包含i / o库

#include <avr/io.h>

答案 1 :(得分:0)

错误的声明:

#define __READ_PIN__(PORT, PIN)    (PORT & (1>>PIN))

正确声明:

#define __READ_PIN__(PORT, PIN)    (PORT & (1<<PIN))