Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - shoshonee

#1
Hola a todos y bienvenidos!

Hace mucho que no entro en este foro debido a cuestiones de tiempo. Me surje una duda y me gustaría que alguien me ayudara lo más rápido posible. El tema es el siguiente:

Estoy haciendo un proyecto con un pic16f886 en C, lo que deseo hacer son unos impulsos a través de un interruptor y que en el primer impulso empiece a contar (con un máximo de 4) y además se active el temporizador. Este contador estará limitado por un temporizador, que también será de no más de 4 segundos. La duda que me surje es ¿cómo puedo hacer esto? Os adjunto el código que llevo hecho:

#include <16F886.h>
//#include <16F876A.h>
#use delay(clock=4000000)
#use fast_io(C)
#use fast_io(B)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,errors)//Errors posa el error a RS232_ERRORS i els reestableix(reset) que es el que ens interesa.
//En Hexa si val 90H crec que vol dir que no hi ha error. Si acava en 2 crec que hem omplert massa el buffer
//El tema es que el buffer de recepció es de 2 bytes, si n'arriven 3 avans de llegir, peta a no ser que posem 'errors'
//Els altres es perden.
//#use fast_io(C)
//#use fast_io(B)
#byte port_a = 5
#byte port_b = 6
#byte port_c = 7

char  dadas;

/*#INT_RDA                //rutina de interrupcio al rebre dades, no la usem
void rda_int()
{
dadas=getchar();
printf("interrupcio %C \n\r",dadas);
}*/


/*void parpadeo (int a);  //això no ho usem a l'exemple
void envchar(char a);*/

void main ()
{
   setup_oscillator(OSC_4MHZ,OSC_STATE_STABLE); // Configurem el quartz intern a 4MHZ i estabilizat per al 16F886
   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_spi(SPI_SS_DISABLED);
   setup_spi(FALSE);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);//depres el trec
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
//enable_interrupts(INT_RDA);  //HABILITAR INTERRUPCIO AL REBRE DADES
//enable_interrupts(GLOBAL);  //habilita totes les interrupcions

int canvi;
int cont;
int tiempo;

set_tris_a(0b00001111); //Port A. RA0 a RA3 com entrades, la resta són sortides
set_tris_c(0b11001110); //Port C. RC2, RC3, RC6 com entrades, la resta són sortides
while (1)
{
cont = 0;
if(input(PIN_A0))
bit_set (port_a, 4); //s'encen el led del pin_A4 quan pin_A0 estigui pulsat
else
bit_clear(port_a,4); //neteja el led quan es deixa de pulsar

if(input(PIN_A2))
bit_set (port_a, 5); //s'encen el led del pin_A5 quan pin_A2 estigui pulsat
else
bit_clear(port_a, 5); //neteja el led quan es deixa de pulsar
//-------------------------------------------------------------

do{
if (input(PIN_A0)) // si pin_A0 està pulsat
    {
        delay_ms(10); // delay antirebot
        if (input(PIN_A0)) // si encara segueix a 1, no ha sigut un rebote.
    {
if(cont == 0)
{
set_timer0 (0);
cont++;
while (input(PIN_A0))
{
delay_ms(200); // cicle tancat fins que no es deixi pin_A0
contarTimer(tiempo);
}
}
else
{
cont++;
        while (input(PIN_A0))
{
delay_ms(200); // cicle tancat fins que no es deixi pin_A0
contarTimer(tiempo);
}
}
    }
if (cont >= 4) //si contador es 4 o més
cont = 4; //entendrem que vol sortir del programa
    }
}while (tiempo < 61);
//s'ha d'enviar cont al port serie
printf ("%d", cont);

//-------------------------------------------------------------
switch (cont)
{
case 1:
output_bit(PIN_C2,1);  //dos intermitencies de 0.5 segon
      delay_ms(250); //
output_bit(PIN_C2,0);  //dos intermitencies de 0.5 segon
      delay_ms(250); //
case 2:
output_bit(PIN_C2,1);  //dos intermitencies de 0.5 segon
      delay_ms(250); //
output_bit(PIN_C2,0);  //dos intermitencies de 0.5 segon
      delay_ms(250); //
output_bit(PIN_C2,1);  //dos intermitencies de 0.5 segon
      delay_ms(250); //
output_bit(PIN_C2,0);  //dos intermitencies de 0.5 segon
      delay_ms(250); //
case 3:
output_bit(PIN_C2,1);  //dos intermitencies de 0.5 segon
      delay_ms(250); //
output_bit(PIN_C2,0);  //dos intermitencies de 0.5 segon
      delay_ms(250); //
output_bit(PIN_C2,1);  //dos intermitencies de 0.5 segon
      delay_ms(250); //
output_bit(PIN_C2,0);  //dos intermitencies de 0.5 segon
      delay_ms(250); //
output_bit(PIN_C2,1);  //dos intermitencies de 0.5 segon
      delay_ms(250); //
output_bit(PIN_C2,0);  //dos intermitencies de 0.5 segon
      delay_ms(250); //
case 4:
output_bit(PIN_C2,1);  //dos intermitencies de 0.5 segon
      delay_ms(250); //
output_bit(PIN_C2,0);  //dos intermitencies de 0.5 segon
      delay_ms(250); //
output_bit(PIN_C2,1);  //dos intermitencies de 0.5 segon
      delay_ms(250); //
output_bit(PIN_C2,0);  //dos intermitencies de 0.5 segon
      delay_ms(250); //
output_bit(PIN_C2,1);  //dos intermitencies de 0.5 segon
      delay_ms(250); //
output_bit(PIN_C2,0);  //dos intermitencies de 0.5 segon
      delay_ms(250); //
output_bit(PIN_C2,1);  //dos intermitencies de 0.5 segon
      delay_ms(250); //
output_bit(PIN_C2,0);  //dos intermitencies de 0.5 segon
      delay_ms(250); //
}
}

int contarTimer (int *tiempo)
{
if (get_timer0() > 200)
{
get_timer0(0);
tiempo++;
}
return tiempo;
}


Lo veis bien, mal... Qué cambiaríais??

Gracias :)
#2
Cita de: peqMike en 30 Agosto 2010, 17:57 PM
Tambien tengo problemas para cunfigurar "JAZLER INTERNET FILE UPDATER" ....
solo safenme de una duda-...
JAZLER INTERNET FILE UPDATER sirve para hacer streaming de lo que se reproduce en JAZLER STUDIO???
GRACIAS---

Shoutcast, Edcast, Icecast... Jazler no (por el momento).

Este tipo de cosas las tratan en el foro de la página web oficial...

Saludos!

PD: este post tiene ya sus años...
#3
Cita de: Songoku en 14 Junio 2010, 18:28 PM
Me temo que eso con programillas como el virtualdub o similares no va a ser posible y vas a tener que emplear programas de edicion de video profesionales como los que as mencionado tu mismo, osea premiere, vegas, etc.
Saludos...

Songoku


Pues vaya... bueno, pues nada, usaré Pinnacle Studio que ya lo he usado más de una vez.

Gracias de todos modos =)
#4
Bueno, la duda aparece con la necesidad de ralentizar un fragmento de un video. Había pensado si con virtualdub se puede (ya que es un programa ligero y versátil) pero no encuentro la manera de como hacerlo (si es que se puede, claro).

Quiero recalcar que preferiría no usar programas tipo Sony Vegas, Adobe Premiere o Pinnacle Studio para una cosa de este tipo; además, solo quiero ralentizar una parte de un vídeo, no el video entero y que, obviamente, se apliquen esos cambios.

Gracias =)
#5
Cita de: GNU López en 23 Mayo 2010, 01:01 AM
Prueba a grabar con el lineIN, y con algún programa que te elimine la distorsión.

Si graba en estereo a través de lineIN tendrá un canal con la grabación y la otra sin nada. Esa entrada de la tarjeta de sonido es estereo, los microfonos son en mono!
#6
Yo me decantaría en usar un micro algo más decentillo... puedes sacarte un micro dinámico a precios razonables. Las "espumas" para los microfonos suelen ser útiles.

Además, como te han comentado antes, asegurate que no suene por los altavoces lo que estés grabando con el microfono =)
#7
Cita de: xkiz en  7 Marzo 2010, 20:07 PM
probaste con XP?
talvez sea un eror del activador.
si no bajate el iso del W7 de nuevo y buscate otro activador

Pero es que me extraña que cuando lo hice con mi torre no tuve problema pero en cambio con el portatil sí. También cabe destacar que mi PC no tenía recovery.

No, no probé con XP  :-\
#8
Eso ya lo hice la segunda vez y nada  :huh:

He usado el Partition Magic del Hiren's Boot y me salia "Error #105" -.-
#9
Hace dos días me dejaron un Sony Vaio con Windows Vista para formatearlo y ponerle Windows 7.

Al instalar el SO y los drivers va perfecto, el problema radica que cuando lo quiero activar, después de reiniciarlo me aparece el asistente del Recovery una y otra vez.

Como alternativa lo he vuelto a instalar en una particion limpia, le he hecho una copia con el Ghost y la he guardado en otra particion por si me volvia a ocurrir lo nombrado anteriormente y, efectivamente, ha sucedido lo mismo. Con la copia que he hecho, la he querido restaurar, para no volver a hacer otra vez la faena de nuevo, pero no hay manera.

¿Podríais darme alguna idea?  :huh:

PD: el portatil es una Sony Vaio VGN-FE41M. Venía con Windows Vista Home Premium de 32 bits. Le quiero meter Windows 7 Professional 7600 de 32 bits.
#10
A veces noto lo ignorante que puedo llegar a ser, como en este caso  :(

A ver, mi grabadora (Pionner) no acepta grabaciones extras y lo he tenido que hacer desde el PC del trabajo.

Tanto en mi PC como en el trabajo tienen el Nero instalado, y he hecho virguerias mil en ese PC para intentar grabarlo, pero todo el rato me pedia un CD de más capacidad.

Total, que he usado el Clone CD y lo he grabado con Overburn, y ha funcionado  :D


Gracias  ;)