C de AVR de interrupción

D

david90

Guest
¿cómo es que la interrupción del código fuente a continuación no se rompe?¿Me estoy perdiendo algo?Sólo quiero que inc.var "a" cada vez que hay un cambio en el pin int 4.Esto es para 2313 btw.
======
# include <avr/io.h>
# include <avr/interrupt.h>
# include <avr/signal.h>
int a = 1, B = 0;

De interrupción (SIG_INTERRUPT1)
(
a ;
)
void main (void)
(
DDRD = 0;

mientras que (1)
(
b = a;
)

)

 
También debe establecer los bits correspondientes en los registros de control de periféricos para configurar el sistema de interrupciones y permitir que las interrupciones.

 
¿por qué no el resultado de la variable "a" en el controlador de interrupciones obtener la transferencia a la variable B de la b = a la instrucción en el programa principal?b variable siempre cero, como si "a" nunca es el cambio

 
¿Cuáles son algunas maneras para el rebote de un interruptor utilizando MCU?

 
ir a la CAVR y el compilador de iccavr luego generar cocde automática generar código C, entonces u encontrar el código de ejemplo.o bien u obtener el proyecto de ejemplo en grandes

http://www.avrfreaks.net/

 
Si se está usando avr-gcc o (WinAVR)

1: en lugar de señal de interrupción
De la señal desactiva interruppts mientras está en la señal de rutina, mientras que la interrupción es interrumpible.

2: para asegurarse de que el compilador de cambios de las variables, es decir, declarar su volátiles.volatile int a = 0, b = 1;

3: Tal vez un vistazo a www.avrbeginners.net, han som intros agradable al AVR

/ Bingo

 
refiriéndose a la b = un problema
Es mejor utilizar punteros en lugar de variables Global.
Podría ser un ámbito de aplicación / pila de memoria problema.

 
¿Habría algún problema si uso un cable de 5 metros para conectar una señal desde el pin AVR a otro circuito digital?¿Existe un límite a la duración del alambre puede ser?

 

Welcome to EDABoard.com

Sponsor

Back
Top