avr-gcc

    1熱度

    1回答

    我正在使用GCC arm-none-eabi-g++(4.8.3)編譯ARM Cortex-M0單片機的代碼。 一切都很好,但我注意到,當我包含並使用cstdlib中的任何功能時,該文件中的所有功能也都包含在內。如何擺脫它們? 我只打電話malloc()和free(),但生成的ELF也有system()和isatty()機器碼。 這個單片機只有32kB的閃存,所以〜0.7kB的鎮流器很重要,特別是

    0熱度

    2回答

    我有一箇中斷服務程序,其中包含變量count和變量state,當count達到某個值時會變化。 我希望自己的代碼是在ISR中的if語句中更改並保持state一段時間,其值由count確定。 例如我希望變量state爲10計數等於1; 我想要state等於0 5次。 有點類似於改變PWM的佔空比。 我遇到的問題是變量state在ISR結束或if語句結束時重置爲零,我不確定。 在搜索答案後,我發現它可

    1熱度

    1回答

    我想編譯一個簡單的彙編程序,用avr-gcc在Attiny85上運行。不幸的是,該程序根本無法工作。我在上傳和編譯時沒有遇到任何錯誤。我知道程序本身應該工作,因爲它使用C工作。那麼我錯過了什麼? 編譯和上傳: avr-gcc blinky.S -mmcu=attiny85 -Os -g -o blinky.out avr-objcopy -O ihex blinky.out blinky.hex

    0熱度

    1回答

    當編譯如下代碼: #define F_CPU 1000000UL #include <avr/io.h> #include <util/delay.h> int main(void) { DDRC = 255; while(1){ PORTC=255; _delay_ms(200); PORTC=0; _delay_ms(200); } return 0; }

    1熱度

    1回答

    如何存儲PORT或DDR或諸如靜態常量成員? 我想要的是,而不是在我的類頭中使用#define TEMPERATURE_PORT PORTC我想存儲一個靜態const成員與該值並iniziallise在settings.h中的所有我定義在一個地方。這被列入最後 class Temperatur { private: static const volatile uint8_t m_po

    2熱度

    2回答

    「常量」修改器我有一個這樣的文件: #include <avr/io.h> #include <avr/pgmspace.h> const PROGMEM char* str = "Hello UART!\r\n"; 我試圖用一個Makefile來編譯它,這是最後的命令: avr-gcc -std=gnu99 -mmcu=atmega328p -DF_CPU=16000000UL -I.

    0熱度

    1回答

    我有一些問題,閱讀從程序存儲器中的字符串: const char str[] PROGMEM = "Test string here\r\n"; 這裏是我的打印程序: /** Send string over UART */ void uart_puts(char* str) { while (*str) { uart_tx(*str++); } }

    1熱度

    1回答

    我開始再次編程AVR。我能夠在我的Linux計算機和Atmega8之間建立UART通信。不幸的是,當我發送大於0x1f的字節時,Atmega8似乎收到錯誤的字節。 UART使用9600 BAUD和數據格式8N1運行。 // clock frequency 1Mhz #define F_CPU 1000000UL // baud rate #define BAUD 9600 #define

    2熱度

    1回答

    我剛剛發現我已經編譯和編程AT32UC3B0512項目,使用AT32UC3B0256作爲目標設備。 我的應用程序接縫工作沒有問題。那可能嗎? AT32UC3B0512和AT32UC3B0256之間有什麼區別(閃存和內存大小不同)?

    0熱度

    1回答

    #define F_CPU 8000000UL #include <avr/io.h> /* * main -- Main program */ int main(void) { /* Set OC1A pin to be an output */ DDRD|=(1<<5); /* Set output compare register value *