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