Tag: atmega

MicroController上的CRC-32(Atmel)

我目前正在尝试在ATMEGA1280上为传入的数据流(串行通信)实现CRC-32而且我有点迷失在C中的嵌入式端如何执行此操作….如果有人能指出我正确的方向和/或无论如何帮助我会非常感激…

I2C不与PCA9685一起使用

我正在使用Atmega168我试图在我的PCA9685伺服驱动程序中使用I2C。 我正在使用这个I2C库: https : //github.com/g4lvanix/I2C-master-lib 我正在尝试使用PCA9685(地址:0x41)启动I2C连接。 由于某种原因,I2C库反弹错误,因为没有发送应答位。 这有什么不对? 我的SDA和SCL引脚连接到10k上拉电阻,它们正确连接到PCA9685。 但它仍然没有用。 它可能是我的PCA9685芯片吗? 我也知道地址是0x41,因为我手动桥接了一个地址连接以分配该地址。 这是我的代码: #include #include #include #include #include “i2c.h” #define SERVO_MIN 1000 #define SERVO_MAX 2000 #define SERVO_MID 1500 #define PCA9685_ADDR 0x40 #define PCA9685_MODE1 0x0 #define LED0_ON_L 0x6 #define LED0_ON_H 0x7 #define LED0_OFF_L 0x8 #define LED0_OFF_H 0x9 #define LED PB0 #define LED_DDR DDRB #define LED_PORT PORTB […]

对于三种情况的排列,最快的算法是什么?

有人可以帮我解决在最小步骤中评估三个条件的最快方法吗? 我有三个条件,如果两个中的任何一个都是真的,那么整个表达式变为true否则为false 。 我试过两种方法: if ((condition1 && condition2) || (condition1 && condition3) || (condition2 && condition3)) 另一种方法是通过引入变量i和 i = 0; if (condition1) i++; if (condition2) i++; if (condition3) i++; if (i >= 2) //do something 我想要比上面两个更好的任何其他有效方法。 我在内存受限的环境中工作(Atmeta8具有8 KB的闪存)并且需要一个在C中工作的解决方案。

如何将字节数组(包含hex值)转换为十进制

我正在为Atmel微控制器编写一些代码。 我通过Uart获取一些数据,并将这些hex值存储到一个数组中。 假设数组的元素是:1F,29和3C。 我想有一个像0x1F293C这样的hex数,并将其转换为十进制数。 所以,我想最后得到“2042172”。 该数组可以有n个元素,所以我需要一个通用的解决方案。 谢谢。

如何在avr中存储十进制格式的数字

我想尝试使用ATMega8中的键盘输入小数值,直到现在我只能输入整数值代码如下 switch (keyCode) { case (0xee): keyPressed=”1″; b=1; a=a*10+b; break; case (0xed): keyPressed=”4″; b=4; a=a*10+b; break; case (0xeb): k keyPressed=”7″; b=7; a=a*10+b; break; case (0xde): keyPressed=”2″; b=2; a=a*10+b; break; case (0xdd): keyPressed=”5″; b=5; a=a*10+b; break; case (0xdb): keyPressed=”8″; b=8; a=a*10+b; break; case (0xd7): keyPressed=”0″; b=0; a=a*10+b; break; case (0xbe): keyPressed=”3″; b=3; a=a*10+b; break; case (0xbd): […]

嵌入式应用的测试代码

背景: 我正在利用Atmel AVR atmega2560开发一个大型项目。 该项目包含许多基于硬件的function(7个SPI设备,2个I2C,2个RS485 MODBUS端口,大量模拟和数字I / O)。 我为所有这些设备开发了“驱动程序”,它们为主应用程序循环提供了访问所需数据的接口。 题: 我正在开发的项目最终必须符合SIL标准。 我希望能够测试代码并提供良好的代码覆盖率。 但是,我无法找到任何信息让我开始研究如何设置这样的测试框架。 我的想法是,我可以拥有一套自动化测试,可以测试未来的错误修复和function添加,以确定它们是否会破坏代码。 问题是我不明白如何在芯片上测试代码。 我是否需要硬件来监控设备上的I / O并模拟外部连接的设备? 任何可以提供的指针都将受到高度赞赏。 –Steve