问题标签 [atmega]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3065 浏览

c - AVR 编程、中断处理

我用 atmega168a-pu 和中断开发了一个 C 应用程序。我使用以下中断:

我的代码看起来像

我想在发生中断时阻止所有其他中断,并在退出中断功能之前启用中断。

您能否在代码片段上解释一下我该怎么做?

编辑:http : //www.nongnu.org/avr-libc/user-manual/optimization.html#optim_code_reorder 指出这种用法会导致重新编码问题。

0 投票
1 回答
2125 浏览

c - how to configure CKDIV8 fuse on AVR programming

I use atmega168a and configure fuse on Tools > device programming > AVR dragon > fuses > (click on) CKDIV8 to set it to 8 MHz internal clock.

what piece of code do I need to add to my C code to be able to set that fuse?

0 投票
4 回答
5875 浏览

c - 如果所有变量在 AVR 编程中都被定义为 volatile 会很糟糕吗?

我读到在某些情况下(全局变量或 while(变量)等)如果未定义变量,因为volatile它可能会导致问题。

如果我将所有变量都定义为 volatile 会导致问题吗?

0 投票
1 回答
546 浏览

c - 如何知道在C中何时按下回车键

我正在尝试通过与微控制器 (AVR) 的串行通信与计算机通信。我正在用 C 编程,我不知道如何确定用户是否按下了终端中的 enter 键,并且想知道是否有人可以帮助我。

0 投票
3 回答
2263 浏览

avr - 定时器和溢出中断 MikroC 代码

然后

但这对我不起作用,那是启动计时器 0 及其中断服务程序的正确方法吗?

0 投票
2 回答
3777 浏览

timer - TimerOne 和串行库

我正在使用TimerOne 库,代码如下所示:

问题是,在一些循环之后(当循环()的毫秒返回 930 时),arduino 停止

我认为问题在于,当 arduino 运行循环并在串行端口中写入时,ISR 例程也在写入。我怎么解决这个问题?

我尝试改变:

经过:

而且工作正常,我认为arduino的串行库在使用中断时有一些问题,有可能吗?

有任何方法可以在某些代码块中阻止 arduino,我尝试使用原子但没有用。

我正在使用 Arduino UNO (ATmega328)

0 投票
1 回答
197 浏览

embedded - 如何在两个半双工串口之间建立隧道?

我正在开发一个嵌入式项目,其中包括两个半双工 UART 和一个全双工 UART。

UART1 连接到Device A。UART2 连接到Device B,UART3 连接到PC。UART1 和 UART2 是半双工的,因此必须正确配置 RX/TX 模式。

当触发 UART1 上的信号时,UART2 从设备 B 获取一些数据。该数据被放入缓冲区,然后传输回 UART1 和 UART3。设备 A 消耗数据,并在 UART1 上发送更多项目,然后必须将其传递到 UART2 以供设备 B 响应。

我正在考虑一个高效的状态机,它可以处理 TX/RX 模式之间的切换模式,到目前为止,我的 UART 代码是中断驱动的。有什么方法可以解决这个程序的流程?

0 投票
1 回答
900 浏览

c - ATMega8 中的浮点型值

我的微控制器不处理浮点类型值,那么如何使用 int 对浮点类型值进行操作?

就像我有一个值存储在寄存器 a=5 现在我想将它乘以 0.65 并将结果存储在另一个寄存器 c 中?我该怎么做?在使用 int 时,它解决了在使用 float 时将小数值放在一边,它显示“?”

0 投票
1 回答
2324 浏览

c - 如何在avr中以十进制格式存储数字

我正在尝试使用 ATMega8 中的键盘输入十进制值 直到现在我只能输入整数值 下面给出了代码

使用上面的代码,我可以在寄存器 a 中存储一个整数

以上案例是“。”的keyCode。现在我想按下“。” 在键盘上,它将所有按下的键存储在整数 a 中

0 投票
1 回答
150 浏览

c - 创建一个函数并在主程序中调用它

我有一个 AVR 编程案例

在此期间我想调用一个预定义的函数

我如何制作功能?并在我的情况下在主程序中调用它?请指导我我对这一切都很陌生...请帮帮我..