【问题标题】:AVR:Setting bits in C microcontrollerAVR:在 C 微控制器中设置位
【发布时间】:2014-07-08 06:55:15
【问题描述】:

我正在尝试将 ATmega328 与 LCD 接口我编写了以下代码

#define en 28       

enable pin 是 28,如何设置和重置这个 pin?

我正在使用 atmel studio 6 和 avrispmkii USB 编程器

【问题讨论】:

  • 你的芯片是哪个封装的?将 28 针分配给哪个引脚很重要。

标签: c embedded avr


【解决方案1】:

请向the datasheet咨询您的设备。

假设您有 28 针 PDIP 封装,我们看到针 28 是 PC5(端口 C,位 5)。

首先,您需要使用端口 C 的数据方向寄存器 DDRC 将引脚配置为输出 (1):

DDRC = (1<<DDC5);

这里,所有其他引脚都配置为输入 (0)。

然后打开此引脚,或打开第 5 位:

PORTC |= (1<<5);

要关闭此引脚,并关闭第 5 位:

PORTC &= ~(1<<5);

另见:

【讨论】:

  • 只是切换位,将1写入相应PIN寄存器中的相应位:PINC |= (1&lt;&lt;5);
  • 我看看你的链接网站。 PIN 部分中的解释有些错误。在较旧的 AVR 上,PIN regsiter 是只读的,不得写入(该站点确实如此,但声明这没有效果)。在较新的 AVR 内核上,PIN 寄存器也是可写的并切换位。读取PIN 寄存器也独立于DDR 寄存器。如果DDR 设置为输出,那么PIN 自然会读取等于PORT 位的状态。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-11
  • 2021-11-01
  • 1970-01-01
相关资源
最近更新 更多