avr

    0热度

    2回答

    我正在为Arduino UNO(基于Atmel ATmega328p)编写一个调度程序,但我来自x86,并且我不知道如何在上下文切换上保存堆栈,以便稍后可以在返回到任务。 有人可以请解释如何做到这一点?

    0热度

    1回答

    Relative jump to an address within PC - 2K +1 and PC + 2K (words). In the assembler, labels are used instead of relative operands. For AVR microcontrollers with program memory not exceeding 4K words (

    1热度

    1回答

    此代码会发出短促的声音。我怎样才能发出440hz的声音? 编辑: 或类似的东西:?我想我不想使用快速PWM。 #include <avr/io.h> #include <avr/interrupt.h> ISR(TIMER1_COMPA_vect) { PORTB = 0; } ISR(TIMER1_OVF_vect) { PORTB ^= 8; } int

    0热度

    2回答

    我能读取数据正常。数据是一系列记录,每个记录以“\ r \ n”作为终止符结尾,然后数据流以“\ r \ n”结尾。第一条记录完美,但其余记录缺少第一个X字符。 X也不会改变。数据来自调制解调器。 c = UART0_RxChar(); response[0]=c; i=0; rec=0; while((c=UART0_RxChar()) != CR) { response[i

    0热度

    1回答

    可以通过控制器区域网络(CAN)使用AVRDUDE编程AT90CAN128微控制器吗?任何帮助将不胜感激!

    0热度

    2回答

    我目前正试图通过在特定点处打印某些变量的值来通过UART调试我的程序。我的问题是打印两个字符数组。我打印它们的顺序似乎对打印效果有影响。阵列的声明在头文件中的结构体作为从输入解析数据后如下 - //header file typedef struct { char latitude[10]; char longitude[11]; }NMEA_RMC_t; NMEA_

    0热度

    2回答

    我正在尝试使用ATmega328P制作接近传感器。我正在使用板载ADC转换电压值,如果它高于环境温度,LED将点亮。 根据该电路被感测的电压为: 在该电路中,VOUT是要ADC通道3,并应被感测(认为导致右侧作为红外线传感器的)。 程序启动时,它会感应30个读数,并将其平均值用作环境设置。如果任何后续测量结果高于此值,LED应亮起。 但即使将手放在传感器上方,LED也不会点亮。 我已经测试了只有L

    -1热度

    2回答

    我正在使用ATmega328。我目前正在使用10位ADC进行多次测量。我想存储它在变量中转换的值,以便能够与它们一起操作。例如: int a; (...) ADMUX = 0b01000011; //Vref = 5V, ADC3 ADCSRA |= (1<<ADSC); //Starts conversion while(!(ADCSRA & (1<<ADIF))); //Wait un

    2热度

    2回答

    我有一些简单的C++程序,如果使用g ++进行编译,会生成以下汇编文本。唯一的说法是sbi,它不会影响任何状态标志。我想知道为什么G ++产生r0和r1这些无用的推/ .global __vector_14 .type __vector_14, @function __vector_14: push r1 ; push r0 ; in r0,__S

    -4热度

    1回答

    我注意到AVR的gcc滞后于gcc的主要开发流程。例如,Atmel Studio 7和Arduino中的AVC8的gcc为4.9.2,Atmel Studio中的AVR32为4.4.7。同时,gcc 4.9.4是当前的4.9版本,开发推动了多个分支5.x,6.x和7.x(https://gcc.gnu.org/develop.html)。 我的担心是 - 我会遇到一些神秘的问题:使用C++语言(C