Autor Tema: agregar canal master rgb y canal strobo atmega 8515 en C  (Leído 4362 veces)

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

Desconectado locodelafonola

  • PIC10
  • *
  • Mensajes: 43
agregar canal master rgb y canal strobo atmega 8515 en C
« en: 10 de Marzo de 2015, 16:12:00 »
hola gente del foro
este es mi primer post ., espero con agrado su guia y consejos.
 
he realizado una compilacion en avrstudio4., guiandome por las librerias de H.Hölscher (www.hoelscher-hi.de)
hasta ahora logre armar 3 canales PWM ., funcionan perfecto
ademas cuenta con la señalizacion (por intermedio de dos led ) del estdo de DMX
esto es .,  el rojo indica la ausencia de señal DMX.,  tambien la direccion incorecta asignada en las llaves MINI-DIPS ., y la coneccion inversa de D+ y D-en la entrada
el led verde indica cuando se recibe una señal DMX correcta en los canales ( por  consola virtual o manual )
trabaja con las direcciones de hasta 512 canales
tambien esta previsto (pero no implemtado) que trasmita en modo autonomo ., o sea al colocar la llave MINI-DIPS 10 en OFF habilite la transmicion P-seudoDMX (master)
adjunto las librerias del proyecto completo por si alguno le interesa o les son utiles
aca publico mi "MAIN" que hasta aqui funciona perfecto., porque esa ya probado en mi prototipo y manejado con FREESTYLER
Código: [Seleccionar]
#include<util\delay.h>
#include<stdio.h>
#include<stdlib.h>
#include <avr/wdt.h>

#include "lib_dmx_in.h"
#include "lib_indicator.h"

uint8_t count= 1; // Counter for soft PWM
uint8_t IndCnt= 1; // Counter for LED indicator
uint8_t DmxBuf[DMX_CHANNELS];

void init_system(void)
{
//Watchdog
wdt_reset();


//Ports
DDRB |= (1<<PB0) | (1<<PB1) | (1<<PB2);
PORTB= 0;
DDRD=  0b10000110; //DMX, spare, LED1
PORTD= 0b01111010;

//Timer0
TCCR0= (1<<CS00);
TIMSK= (1<<TOIE0);

init_DMX(); // Initialize DMX channels
init_ind(); // Initialize LED indicator
}



int main(void)
{
cli();
init_system();
sei();
int PWM_timer;
while(1)
{
for (PWM_timer=0; PWM_timer<255 ; PWM_timer++) // Timer applied right through a series of fill
{

if (DmxRxField[0]>PWM_timer) //red
{
PORTB &= ~(1<<PB0); //LED OFF
}else{
PORTB |= (1<<PB0); //LED ON
}
 
if (DmxRxField[1]>PWM_timer) //green
{
PORTB &= ~(1<<PB1); //LED OFF
}else{
PORTB |= (1<<PB1); //LED ON
}
 
if (DmxRxField[2]>PWM_timer) //blue
{
PORTB &= ~(1<<PB2); //LED OFF
}else{
PORTB |= (1<<PB2); //LED ON
}
         if (Flags &(1<<EVAL_DMX)) // DMX universe was refreshed
{
Flags &= ~(1<<EVAL_DMX);
IndFlags |= (1<<VALID_DMX); // Valid DMX signal arrived

uint8_t i;
for (i=0; i<DMX_CHANNELS; i++)
{
if (DmxRxField[i] != DmxBuf[i]) // A DMX value has changed?
{
DmxBuf[i]= DmxRxField[i];
IndFlags |= (1<<DATA_REFRESHED); // Yes -> blink!
}
}

}
}
if (Flags &(1<<IND)) // LED indicator, DIPs
{
Flags &= ~(1<<IND);
wdt_reset(); //reset watchdog
get_dips();
if (--IndCnt == 0)
{
IndCnt= 8;
indicate();
}
}
}
}




// *************** Soft PWM ****************
ISR (TIMER0_OVF_vect)
{


if (count == 0xFF)
{ // Called with 122Hz
count= 1;
Flags |= (1<<IND);
}
else count++;
}




aca el diagrama de conecciones
bueno espero con muchisimas ganas sus observacione o dudas
yo solo se que ...nose nada

Desconectado stk500

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4917
Re: agregar canal master rgb y canal strobo atmega 8515 en C
« Respuesta #1 en: 10 de Marzo de 2015, 18:05:40 »
 ((:-)) ((:-)) muchas gracias por compartirlo
Saludos

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2976
Re: agregar canal master rgb y canal strobo atmega 8515 en C
« Respuesta #2 en: 10 de Marzo de 2015, 18:25:20 »
Muchas gracias amigo, muy bien por compartir las librerias. En el esquemático parece todo correcto, sin embargo como consejo te diré que se hechan de menos algunos condensadores como por ejemplo de desacoplo de unos 0.1uF en el pin 40 del atmega por ejemplo pero esta muy bien.
Visita mi canal para aprender sobre electrónica y programación:

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw

Desconectado locodelafonola

  • PIC10
  • *
  • Mensajes: 43
Re: agregar canal master rgb y canal strobo atmega 8515 en C
« Respuesta #3 en: 10 de Marzo de 2015, 21:11:17 »
hola gente
((:-)) ((:-)) muchas gracias por compartirlo
Saludos

muchas gracias amigo ¡¡¡¡ y gracias por su amabilidad ., !!! hay mas  :mrgreen: :mrgreen: ¡¡¡¡¡ espero ordenar todo para compartirlo
lo que nesesito es que me indiquen la manera correcta de colocar el canal MASTER dimer y tambien el strobo
he estado haciendo pruebas con algunas ideas de internet pero no me funcionan
                             
Muchas gracias amigo, muy bien por compartir las librerias. En el esquemático parece todo correcto, sin embargo como consejo te diré que se hechan de menos algunos condensadores como por ejemplo de desacoplo de unos 0.1uF en el pin 40 del atmega por ejemplo pero esta muy bien.
sip amigo ., los tiene (mas de uno) en micaso tiene un regulador de 5v (reduce 12v )
y cuando tenga todo funcionando con las reformas( si se pueden realizar)
lo posteare todo completo ., inclusive con la placa del impreso (regulador incluido
yo solo se que ...nose nada

Desconectado niht

  • PIC10
  • *
  • Mensajes: 10
Re: agregar canal master rgb y canal strobo atmega 8515 en C
« Respuesta #4 en: 14 de Julio de 2015, 17:15:05 »
Hola locodelafonola... cuentame como te fue con el proyecto se logro llegar a feliz termino?


 

anything