Questions tagged [avr-gcc]

AVR-GCC is part of the GNU Compiler Collection (GCC) collection of open source compilers that targets the popular AVR microntroller produced by Atmel. It supports both the C and C++ languages.

Filter by
Sorted by
Tagged with
1 vote
1 answer
113 views

avr-gcc optimization deleting register writes on ATTiny402

I'm using avr-gcc (12.1.0, built with this script: https://github.com/ZakKemble/avr-gcc-build) to compile for the ATtiny402 and encountering problems with code optimization. Specifically, the compiler ...
andy28's user avatar
  • 13
2 votes
2 answers
312 views

How do I measure a pulse width using the ATmega328P interrupts and timers?

I am using an ATmega328P MCU with an 8 MHz internal oscillator. I need to measure the pulse width of an incoming pulse. The frequency of this pulse is approximately 500 Hz. Once every 2 ms, one pulse ...
turqay mammadov's user avatar
1 vote
1 answer
188 views

AVR-libc `uart_putchar` implementation

In AVR-libc page 143 the implementation of the function uart_putchar() is typical as the following: ...
NAND's user avatar
  • 498
4 votes
3 answers
2k views

Convert the type of calculation result in if() to uint8_t

I am writing in C using the Atmel Studio (AVR-C.) I have an if statement: if( (rxProcessing < (rxWritePos-1) ) ) Where ...
Christianidis Vasilis's user avatar
1 vote
4 answers
417 views

Atmel SPI "wait for transmission complete" example is wrong?

I am configuring my first SPI transmission on my atmega328p. Everything seems right (My SPI interrupt ISR(SPI_STC_vect) fires when transmission is done, and I can see all SPI pins on the oscilloscope ...
Christianidis Vasilis's user avatar
0 votes
1 answer
122 views

Where to find documentation for definitions for AVR programming in C

I wonder if there is a documentation for AVR (I am using C to program) definitions like PIN5_bm or SLEEP_MODE_PWR_DOWN, or if I ...
planespotter5000's user avatar
14 votes
2 answers
991 views

Avr-gcc using repeated addition instead of MULU instructions

I recently compiled some C++ code for the ATmega1284P in Atmel Studio and was analyzing the timings of some routines using my scope. To my surprise, a loop I thought I had optimized was taking longer ...
Hackstaar's user avatar
  • 886
0 votes
1 answer
148 views

Why port B5 on ATMEGA64A-AU mailfunction after enabling USART function?

I've wire up ATMEGA64A-AU based on this schematic from here: I've tried to program a blink on pin B5 which has a LED on it: ...
diadra's user avatar
  • 19
1 vote
2 answers
59 views

ATmega48PB: wdt in interrupt mode still reset the MCU

I read the datasheet and this question, but there's still something wrong here. Here my wdt init code: ...
Mark's user avatar
  • 1,160
1 vote
2 answers
170 views

Changing delay duration in _delay_us() changes code size

I was programming an ATtiny13A when I accidentally noticed that when I change the delay time in _delay_us() my code size changes. Here's the sample code: ...
Pouria P's user avatar
  • 310
0 votes
1 answer
171 views

Why the RAM 23lc1024 is not responding or give error?

I interfaced the 23LC1024 RAM module to atmega328. I have coded using embedded c on avr studio. The program flows like one byte is written to the address 0x000000 and Read data from the address ...
vishnu m c's user avatar
0 votes
0 answers
263 views

Implementing UART driver with Interrupts and DMA - UART_RXC ISR is executed only first time a character is received

I am using ATxMega 32E5 and my current task is to rewrite existing RS485 driver and use DMA to save in my case valuable cycles (the speed is going to be multiplied by 8x going from 230k to 2M baudrate)...
Possible's user avatar
1 vote
2 answers
807 views

Linking a binary with avr-gcc from object files

I've been able to build and run binaries successfully when I compile and link in one step. However if I try compiling but not linking with the -c option to ...
Phil Frost's user avatar
  • 56.9k
1 vote
0 answers
141 views

Relocation in MPLAB IDE X

I'm writing a bootloader for ATXMEGA256A3U. At page 14, Table 7.1 of the datasheet I know the bootloader address start at 0x20000. Using AtmelStudio I set in the linker option the following ...
Mark's user avatar
  • 1,160
0 votes
3 answers
108 views

Buffer exceeding ramsize do not produce error in avr-gcc

In my source code I have tried to allocate a huge buffer exceeding the RAMSIZE value (RAM of my component (ATmega324PB) is 2k). ...
doom's user avatar
  • 171
6 votes
7 answers
3k views

Compress .hex file for micro-controller [closed]

I am currently writing a program in AVR Studio, here is the build *Memory Usage : * ...
Danial's user avatar
  • 223
0 votes
2 answers
3k views

Can I use C++ stl in avr-gcc?

I have implemented C++ queue in my codes, those I run on my PC. Now I'm programming an ATmega128 micro-controller to implement a .c code. Can I use that ...
Maifee Ul Asad's user avatar
-1 votes
2 answers
138 views

Interfacing 4*4 keypad avr-gcc [duplicate]

I have this function for a 4x4 keypad: ...
Danial's user avatar
  • 223
3 votes
2 answers
361 views

avr-gcc keypad interfacing code problem

I have this function to read key press from a 4x3 key-board: ...
Danial's user avatar
  • 223
0 votes
1 answer
79 views

How to use output PWM in AVR

I have this code to blink an array (8-led) of led one after one: ...
Maifee Ul Asad's user avatar
0 votes
1 answer
226 views

Atmega328p ADC - value keeps returning zero when connected

I'm currently try to connect a DS18S20 temperature sensor to the atmega328p. I have wired AVCC and AGRD to the same power rail on my breadboard as normal VCC/GRD and AREF is not connected. When I try ...
markvdlaan93's user avatar
1 vote
2 answers
2k views

AVR atmega328p - Can I use port C as digital output pins?

I'm currently trying to connect a 7x5 dot matrix to an AVR ATMega328p. I'm already using port B/D and I would like to use port C so that I have extra output pins. My question is, can I use port C as ...
markvdlaan93's user avatar
1 vote
0 answers
155 views

AVR - Timer0 is not firing if INT5 is enabled in EIMSK

I'm using an ATMEGA2560. Compiler: avr-gcc (AVR_8_bit_GNU_Toolchain_3.4.5_1522) 4.8.1 I have setup TIMER0 for periodic tasks: ...
Daniel's user avatar
  • 947
1 vote
0 answers
439 views

Issue with SD Card Initialization via SPI: No CMD0 Response

I am working on a project to read files off of SD cards with an xmega128a4u via SPI. I noticed that some cards initialize without an issue. However, I have two cards that just wont. As far as I can ...
Hexum064's user avatar
  • 327
0 votes
1 answer
163 views

(Noob question) Placing parts of a byte in different (parts of) registers

Background: I'm trying to get a gLCD working with an Atmega328p. I got it to work quite easily, but there was one catch: the library that I found, used portB for the datapins. This was unacceptable, ...
Opifex's user avatar
  • 505
1 vote
0 answers
437 views

Cannot Disable AVR ATmega32 Watchdog

I'm writing a code to enable and disable the watchdog timer in ATmega32. I'm using the function in the datasheet that disables the wdt. Also, I'm toggling led in the beginning of the code to know if ...
Gamal Othman's user avatar
1 vote
1 answer
228 views

progmem data array optimized out [closed]

I try to use a ATTiny10 to drive some APA102 LEDs. The LEDs are arranged in a 5x5 array. To draw something I stored some 'images' in PROGMEM. Program looks like this: ...
Steve 's user avatar
  • 155
0 votes
1 answer
433 views

AVR NRF24L01+ No Communication, No IRQ Activity

I've been scratching my head for a few days over getting the NRF24L01+ modules to work on AVRs (ATMega328/p). I followed Gizmosnack's tutorial, not changing very much at all from his code. I've also ...
Orotavia's user avatar
  • 400
2 votes
5 answers
643 views

Are the AVR GPIO registers used by AVRGCC?

Most (all?) of the AVR family controllers provide some special GPIO registers. 4.8.1 General Purpose I/O Registers The lowest 16 I/O Memory addresses is reserved for General Purpose I/O Registers....
Rev's user avatar
  • 10k
2 votes
1 answer
864 views

AVR SPI slave first byte problem

I have written a simple SPI slave on an ATMEGA328PB. It mostly works, however, I can't seem to get the first byte to be what I want. The difference between the first, second, and all other attempts ...
evildemonic's user avatar
  • 8,793
3 votes
1 answer
853 views

How to create unique label on macro definition on AVR GNU assembler?

On AVR GNU assembler I'm trying to create a label inside a macro definition. I would like to create a macro, which has a private lable, or unique label inside - just to be able to jump inside macro ...
Marcin Daw's user avatar
1 vote
2 answers
585 views

SPI between ATmega32 and ATmega328 is not working

I have been trying to accomplish connecting ATmega32 and ATmega328 using SPI Hardware connections: ...
Pavindu's user avatar
  • 123
1 vote
2 answers
355 views

ATTiny414 inline assembly operand constraints for IO pin parameter

I'm trying to use the light_ws2812 library to drive WS2812 LEDs from an ATTiny414. The core of that library is an inline assembly snippet that bitbangs the serial line. here it is with the timing-nops ...
s-ol's user avatar
  • 113
1 vote
1 answer
838 views

AVR-GCC initialization code

Consider the following asm.S .global main main: rjmp main Compile and dump it with these commands: ...
Igor Liferenko's user avatar
4 votes
2 answers
409 views

Strange issue with ATTiny10 + avr-gcc: counter used in ISR corrupted by global variables?

I have a very strange issue of a possible memory corruption when using global variables and a timer overflow interrupt on the ATTiny10 (using avr-gcc 4.9.2). I can't make any sense of it but managed ...
pdenes's user avatar
  • 143
3 votes
1 answer
190 views

Why does AVR-GCC apparently waste 6 cycles here?

This line... if (thisWindowsSinceLastFlash <=1 ) { ...complies to this code... ...
bigjosh's user avatar
  • 9,958
0 votes
0 answers
63 views

Atmel AT90USBKEY2 delay wrong before dropping power

When I program my AT90USBKEY2 with dfu-programmer, the delays are wrong until I restart the board by unplugging it. ...
mtfurlan's user avatar
  • 101
0 votes
2 answers
37 views

Is it possible to access semantically connected registers generically?

I have an SPI module which has an initializer function: ...
arminb's user avatar
  • 1,622
1 vote
2 answers
658 views

Atmega32 ADC Value not accurate

I was trying to simulate on proteus ADC with potentiometer and get the reading to control dc motor with PWM it's working but the problem is the ADC value not accurate. ADCH reach max value before ...
user247954's user avatar
1 vote
2 answers
491 views

USART ISR keeps repeating 4 times

​Hi, ​I'm having a problem with the USART_RX_vect interrupt of the ATMega 328p. The receiving works fine and I'm able to evaluate the sent bits (so it's not due to the baudrate) but everytime I send ...
Ardupi de's user avatar
3 votes
2 answers
92 views

Unexpected bits when shifting out (ATtiny85)

I'm trying to spoof a 433 MHz remote and I have a sequence of 32 bytes that I want to repeatedly shift out to one of ATtiny85's pins. The signal then goes to a cheap Chinese-type 433 Mhz transmitter. ...
Protecto's user avatar
1 vote
2 answers
4k views

How to know the size of my code in Atmel Studio

I'm new with Atmel Studio and I'm playing with ATtiny13. This mcu has 1K Bytes of Flash, 64 Bytes of EEPROM and 64 Bytes of SRAM. I would like to know how much memory (flash, eeprom and sram) my code ...
Salva's user avatar
  • 59
0 votes
2 answers
2k views

Where should an ISR be declared in a library?

Suppose I have a library consisting of TWI.h and TWI.c which contains an ISR defined according to AVR-GCC syntax. For example: ...
HaLailah HaZeh's user avatar
0 votes
1 answer
487 views

Push button counting [closed]

I'm trying to have a button iterate a LED strip through binary. Each press would either increment +1 or -1 depending on the button. However, My code doesn't seem to store the variable in the do-while ...
Kevin Khoa  Nguyen's user avatar
10 votes
1 answer
1k views

Why doesn't the compiler use directly LSR

Hi I've been working on a project using an Arduino Uno (so ATmega328p) where timing is quite important and so I wanted to see into which instructions the compiler was converting my code. And in there ...
xZise's user avatar
  • 239
1 vote
1 answer
968 views

ATtiny85 analog input constantly on max

I am currently getting into AVR programming and I want to read in two values from two potentiometers on the analog inputs PB3/ADC3 PB4/ADC2. I want to (just for now) light an two LEDs (PB1 and PB2) ...
elhe's user avatar
  • 37
-3 votes
2 answers
281 views

i'm using atmega32 to do an automatic railway gate project i wrote the code ,but i have a problem with it that it doesn't give me the required output? [closed]

I've a school project "automatic railway system ", i wrote the code but it works only on protues . when i burn it on the kit it doesn't work . what is the wrong with this code ?? "my project idea ...
Sara Gero's user avatar
-5 votes
2 answers
995 views

LED not even turning on with avr [closed]

As the title states I have been having problems with programing my atmega328 to run a simple code that turns on an led the code is here ...
Redrachet2's user avatar
3 votes
1 answer
608 views

Avr-gcc does not compile correctly without optimizations, but works (badly) with -Os

I am developing software for attiny88 with avr-gcc toolchain. This is a cheap microcontroller with 8kB program memory, 512B SRAM and 64B non-volatile EEPROM data memory. This is all sufficient for the ...
student's user avatar
  • 541
1 vote
1 answer
306 views

UART with PC : Reciving absurd characters in PC

I am working on a project using Atmega16 micro-controller of AVR family. I am using UART for my project. I need to send data to my PC AT 9600 baud rate via an USB-TTL converter and view the data using ...
Debesh Mohanty's user avatar