Autor Tema: ayuda con mejora de programa  (Leído 5758 veces)

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

Desconectado yair_xiox

  • PIC16
  • ***
  • Mensajes: 210
Re: ayuda con mejora de programa
« Respuesta #45 en: 29 de Septiembre de 2015, 12:59:00 »
le cambio la frecuencia al reloj en el programa pero sigue sin generar la señal de pulso del reloj no se porque hace eso

Desconectado yair_xiox

  • PIC16
  • ***
  • Mensajes: 210
Re: ayuda con mejora de programa
« Respuesta #46 en: 01 de Octubre de 2015, 19:16:10 »
no se si asi funcione le puse los 4 ciclos del clk antes de enviar y 5 para leer
Código: [Seleccionar]
#if defined(__PCM__)

#include <16f73.h>
 
#fuses XT,NOWDT,PUT, NOPROTECT
 
 
#use delay (clock =4000000)
 
#define PIN_OE PIN_C1
#define PIN_LE PIN_C2
 
 
#use fast_io(A)
#use fast_io(B)
#use fast_io(C)
#use rs232(BAUD=9600, XMIT=PIN_C6, RCV=PIN_C7, BITS=8)

 
int16 errores;
 
void diagnostico (void)
{
int8 j,k;       
output_low(PIN_OE);
output_high(PIN_OE);
j = spi_read(0);
k = spi_read(0);
errores = make16(j,k);
}
 
void programarMBI (void)
{
set_tris_c(0x10);
output_high(PIN_LE);
output_low(PIN_LE);
output_high(PIN_C3);
output_low(PIN_C3);
output_high(PIN_C3);
output_low(PIN_C3);
spi_write(0x6B);
spi_write(0X55);
output_high(PIN_C3);
output_low(PIN_C3);
output_high(PIN_C3);
output_low(PIN_C3);
output_low(PIN_C3);






void main(){
 

set_tris_b(0x00);
set_tris_a(0x00);
set_tris_c(0x80);
setup_adc_ports(NO_ANALOGS);

setup_spi(spi_master | spi_l_to_h | spi_clk_div_16);

 
output_high(PIN_A0);
 
programarMBI();
  diagnostico();
while(true)
{
 
if(errores)
{
output_b(0x00);
}
else
{
output_b(0x0F);
}
 

}
}

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: ayuda con mejora de programa
« Respuesta #47 en: 01 de Octubre de 2015, 20:41:17 »
Lamentablemente no te puedo ayudar, soy anti CCS por los mismos problemas que estas teniendo

Desconectado yair_xiox

  • PIC16
  • ***
  • Mensajes: 210
Re:ayuda con mejora de programa
« Respuesta #48 en: 14 de Octubre de 2015, 10:58:35 »
Código: [Seleccionar]
#if defined(__PCM__)

#include <16f73.h>
 
#fuses XT,NOWDT,PUT, NOPROTECT
 
 
#use delay (clock =4000000)
 
#define PIN_OE PIN_C1
#define PIN_LE PIN_C2
 
 
#use fast_io(A)
#use fast_io(B)
#use fast_io(C)


 
int16 errores;
 
void diagnostico (void)
{
int8 j,k;       
output_low(PIN_OE);
output_high(PIN_OE);
j = spi_read(0);
k = spi_read(0);
errores = make16(j,k);
}
 
void programarMBI (void)
{
set_tris_c(0x10);
output_high(PIN_LE);
output_low(PIN_LE);
output_high(PIN_C3);
output_low(PIN_C3);
output_high(PIN_C3);
output_low(PIN_C3);
output_high(PIN_C3);
output_low(PIN_C3);
output_high(PIN_C3);
output_low(PIN_C3);
spi_write(0x6B);
spi_write(0X55);
output_high(PIN_C3);
output_low(PIN_C3);
output_high(PIN_C3);
output_low(PIN_C3);
output_high(PIN_C3);
output_low(PIN_C3);
output_high(PIN_C3);
output_low(PIN_C3);
output_high(PIN_C3);
output_low(PIN_C3);






void main(){
 

set_tris_b(0x00);
set_tris_a(0x00);
set_tris_c(0x80);
setup_adc_ports(NO_ANALOGS);

setup_spi(spi_master | spi_l_to_h | spi_clk_div_64 |SPI_SS_DISABLED);

 *0x94 |= 0x40;                          // set CKE = 1 - clock idle low
*0x14 &= 0xEF; // set CKP = 0 - data valid on rising edge
output_high(PIN_A0);
 
programarMBI();
  diagnostico();
while(true)
{
 
if(errores==0)
{
output_b(0x00);
}
else
{
output_b(0x0F);
}
 

}
}
hola aqui ya con este codigo en el circuito hace unos pequeños intentos de funcionar pero la mayoria de las veces no funciona no se porque

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:ayuda con mejora de programa
« Respuesta #49 en: 14 de Octubre de 2015, 15:55:06 »
Nuevamente, busca ejemplos de SPI por internet, eso que hiciste es cualquier cosa.

PD: te deje ahi un programa en ASM que envia unos caracteres por UART para PIC18, tal cual pediste.


 

anything