Autor Tema: AVR, Lenguaje C, ATMega8A, Microcontrolador  (Leído 1679 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado manuelin18

  • PIC10
  • *
  • Mensajes: 2
AVR, Lenguaje C, ATMega8A, Microcontrolador
« en: 27 de Octubre de 2017, 03:31:59 »
Hola!
podria alguien ayudarme con el codigo de este problema?
El problema es: Teniendo 31 numeros al azar en un arreglo de datos, contar cuantos numeros son distintos al ultimo digito del arreglo.
El programa me hace todo bien, pero, necesito que ese resultado aparezca en una matriz de led's 8x8 anodo comun, podrian ayudarme explicandome como va el codigo para mandar eso a la matriz por favor?
Inicie unas variables en binario para mostrarlas en la matriz pero de las maneras que lo intente no me resultó nada, nisiquiera prendió la matriz :(
ayuda por favor :(

Gracias!

#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
   DDRB = 0b11111111;
   DDRD = 0b11111111;
int contuvar=0;//contador de numeros diferentes a ultima variable
int cont1=0;//contador
int uvariable=0;//ultima variable
int matriz[31]={0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,5,0,0,0,0,0,0,,0,1,1,1,5};
int f[8] = {1,2,4,8,16,32,64,128};
int cero = {0b01111110,0b01000010,0b01000010,0b01000010,0b01000001,0b01000010,0b01111110,0b00000000};
int uno =  {0b00011000,0b00011000,0b00011000,0b00011000,0b00011000,0b00011000,0b00011000,0b00000000};
int dos  = {0b01111110,0b01100000,0b01100000,0b01111110,0b00000110,0b00000110,0b01111110,0b00000000};
int tres = {0b01111110,0b01100000,0b01100000,0b01111000,0b01100000,0b01100000,0b01111110,0b00000000};

   
uvariable=matriz[30];
while(1)
{
     for(cont1=0;cont1<=30;cont1++)
          {
           if(matriz[cont1] != uvariable)
             {
                 contuvar++;
          }             

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:AVR, Lenguaje C, ATMega8A, Microcontrolador
« Respuesta #1 en: 27 de Octubre de 2017, 08:19:40 »
El tema esta en como tenes conectada la matriz... Si tenes un esquematico de como lo tenes realizado mejor. Tenes que multiplexar la salida.

Desconectado manuelin18

  • PIC10
  • *
  • Mensajes: 2
Re:AVR, Lenguaje C, ATMega8A, Microcontrolador
« Respuesta #2 en: 27 de Octubre de 2017, 09:05:24 »
El tema esta en como tenes conectada la matriz... Si tenes un esquematico de como lo tenes realizado mejor. Tenes que multiplexar la salida.



Lo tengo de esta manera:
PORTD, PIN0 ——————PIN13 DE MATRIZ LEDS

PORTD, PIN1 ——————PIN03 DE MATRIZ LEDS

PORTD, PIN2 ——————PIN04 DE MATRIZ LEDS

PORTD, PIN3 ——————PIN10 DE MATRIZ LEDS

PORTD, PIN4 ——————PIN06 DE MATRIZ LEDS

PORTD, PIN5 ——————PIN11 DE MATRIZ LEDS

PORTD, PIN6 ——————PIN15 DE MATRIZ LEDS

PORTD, PIN7 ——————PIN16 DE MATRIZ LEDS

PORTB, PIN0 ——————PIN09 DE MATRIZ LEDS

PORTB, PIN1 ——————PIN14 DE MATRIZ LEDS

PORTB, PIN2 ——————PIN08 DE MATRIZ LEDS

PORTB, PIN3 ——————PIN12 DE MATRIZ LEDS

PORTB, PIN4——————PIN01 DE MATRIZ LEDS

PORTB, PIN5 ——————PIN07 DE MATRIZ LEDS

PORTB,PIN6 ——————PIN02 DE MATRIZ LEDS

PORTB, PIN7 ——————PIN05 DE MATRIZ LEDS


Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:AVR, Lenguaje C, ATMega8A, Microcontrolador
« Respuesta #3 en: 27 de Octubre de 2017, 14:08:57 »
Y estan directos ? Te faltarian resistencias desde el pin del microcontrolador a los pines 3, 5, 8, 9, 10, 12, 15, 16 ( filas )
Y ademas transistores NPN con sus resistencia de base para todos los pines de las columnas ( O 1 ULN2003 que son 7, pero te faltaria para uno mas )
« Última modificación: 27 de Octubre de 2017, 15:24:17 por KILLERJC »