avr

    0热度

    1回答

    此行定义地址DDRD在AVR单片机注册 #define myDDRD *((volatile unsigned char* const) 0x31) 能否请您澄清如何在指针上线使用? 为什么我们需要第一个星号?第二个不应该足以指向地址0x31?

    0热度

    1回答

    当我使用变形模拟下面的程序,该EEPROM不会改变,而且当我添加EECR观看EEPE将没有设置,整个计划是在这里: #include <inttypes.h> #include <avr/io.h> #include <avr/interrupt.h> #include <avr/sleep.h> #include <util/delay.h> void writeEEPROM(uns

    2热度

    1回答

    我想写一个有效的方法来在字节(或任何其他类型)中写入0和1。 例如,在C,我们可以写类似: uint8_t x = 0x00; x|= (1 << 2) | (1 << 4); 写在第2位1和4(当然,你不使用2和4,但使用宏记住位2和4的含义)。 我不喜欢这些做法,所以我写了下面的可变参数模板: template<typename T> T bitmask(T p0) { r

    -1热度

    1回答

    我需要使用我的代码创建引导程序。 I discovered a github与引导程序,但我不知道如何处理它。 我使用arduino的经验受限于burning the default bootloader for ATmega328p 那么,是否有任何简单的方法只是将默认的arduino引导代码(闪烁diod)替换为其他任何东西?

    1热度

    2回答

    我在Atmel Studio中打开了一个AVR C++项目。我想使用Ardunio库来驱动TFT屏幕。添加库后,我发现头文件调用SPI.H,根据函数调用它是Arduino库。我使用右键单击添加了SPI库 - >添加Arduino库,并添加了SPI.h和SPI.cpp。 SPI.h包含它未找到的Arduino.h。 添加Arduino库还有其他步骤吗?文件本身在Arduino文件夹中找不到。

    4热度

    2回答

    uint32_t a = 65536; uint32_t b = 1 << 16; 为什么a != b这里,但 uint32_t a = 65536; uint32_t b = 65536; 这里a == b虽然它应该在技术上是一样的吗? 我使用CLion作为IDE和CMake 3.7.1与Arduino CMake。

    1热度

    1回答

    我有一个类模板,我想将它的实例作为模板参数传递给另一个类模板。如: typedef Pin<(uint16_t)&PORTB,0> B0; typedef Pin<(uint16_t)&PORTB,1> B1; 后来我想通过他们,如: Indicator<B0,B1> Ind1; 引脚类模板,我使用: template <uint16_t tPort, uint8_t tBit> cl

    0热度

    2回答

    我有一个使用C的atMega1281微控制器。我有一个例程来从CAN总线上拉出4个字节来读取SPN。我能够得到4个字节,但我不能打印4个字节的数字,因为它会截断前2个字节,使其成为16位数字。我试过使用unsigned long作为声明没有成功。在AVR中使用32位数字时有什么窍门? unsigned long engine_hours_raw; float engine_hours_uint;

    0热度

    1回答

    #include <avr/io.h> #include <util/delay.h> #define BAUDRATE 115200 #define BAUD_PRESCALLER (((F_CPU/(BAUDRATE * 16UL))) - 1) //Declaration of our functions void USART_init(void); unsigned cha

    -1热度

    1回答

    我在Atmel Studio上写了一个AVR代码,并且由于错误,我忘了在主内写入IO端口设置(DDRx,PORTx,...等),而不是将它放在主要如图所示: #include <avr/io.h> #define F_CPU 1000000UL #include <util/delay.h> #include <avr/interrupt.h> void delay_250ms();