Preguntas con etiqueta 'avr-gcc'

2
respuestas

El tamaño de la matriz global afecta la frecuencia del reloj solo en Linux (avr-gcc)

Estoy teniendo el problema más peculiar. Cuando cambia el tamaño de una matriz global, altera la frecuencia de reloj del ATmega164a. Esto está en Linux. Cuando se compila en Windows, este problema no se produce (independientemente de si el archi...
2
respuestas

Acceso a datos más allá del límite de 64k en atmega1280

Necesito poder almacenar y referirme a matrices de datos constantes que deben colocarse después del límite de 64k en el atmega1280. ¿Cómo creo la estructura de datos correcta y luego accedo a ella para el siguiente ejemplo: const uint16_t PROG...
1
respuesta

Modificar tabla de vector de interrupción de Atmega32

Un proyecto en el que estoy trabajando implica una rutina de servicio de interrupción de ciclo preciso. Esta rutina está escrita en el ensamblaje de AVR donde acabo de escribir: .org oc1aadr rjmp INTRP (para configurar el IVT) Y funcionó pe...
4
respuestas

Uso excesivo de RAM estática AVR con operaciones matemáticas de tipo mixto

He reducido un problema en mi código que crea 260 bytes adicionales de uso de RAM estática: BYTE Height = 150; BYTE sampleLevel(BYTE ADCchan,BYTE averages) { float samp; //int samp; BYTE level; samp = avgSampleADC(ADCchan,ave...
1
respuesta

¿Cómo conectar un gran código existente (algún simulador) al AVR Studio Simulator?

Context Estoy trabajando en un proyecto de controlador de motor de CC sin escobillas. Y me gustaría verificar que los tiempos de interrupción tengan sentido en la simulación antes de descargar mi código en el tablero. Challenge Para eso,...
2
respuestas

Gestión de interrupciones - Proyectos AVR grandes

Esto es para los más experimentados que están por ahí. Actualmente estoy involucrado con un proyecto AVR grande (usando ATMega328) y se está confundiendo con respecto a las interrupciones. El proyecto involucra interrupciones de las siguie...
1
respuesta

AVR: instrucción LDI

En el conjunto de instrucciones 8bit-avr, la instrucción LDI se define como LDI Rd, K; Por ejemplo, LDI R16, $ 10; y se tarda 1 ciclos en completarse. En el mismo documento leí que podemos cambiar el bit específico del registro Rd de esta...
1
respuesta

¿La forma más fácil de deshacerse de __clz_tab en el código compilado de winavr?

He portado un programa del entorno arduino a un build de makefile usando winavr, que, a su vez, se basa en avr-gcc (al igual que arduino). Sin embargo, mi programa comenzó a fallar, y después de una investigación descubrí que me estaba quedan...
2
respuestas

ATMega8 - PUERTO C - Problema de salida digital

Lo que estoy tratando de hacer es configurar el pin PC0 del PUERTO C como salida para encender un LED. El código que estoy usando para eso es: //SET PORT C //PC0 = RELAY STATUS LED - O/P //PC1 = RELAY CTL LINE - O/P //PC2 = PUSH BUTTON - I/P /...
1
respuesta

AVR USART Comportamiento aleatorio

Parece que estoy obteniendo caracteres aleatorios en mi salida de USART con un ATMEGA8 uart.c #define FOSC 8000000 #define BAUD_RATE 9600 #define UBRR_VALUE (uint16_t)(FOSC/16/BAUD_RATE-1) #include "uart.h" volatile u8buf UART_RCV_BUFFER;...