Autor Tema: problemas con mplab y proteus  (Leído 531 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado jose_manuel

  • PIC10
  • *
  • Mensajes: 2
problemas con mplab y proteus
« en: 04 de Mayo de 2023, 21:30:41 »
que tal no se si me puedan ayudar con este problema, estoy intentado mandar el valor de una variable por el puerto serie de proteus, pero me manda caracteres extraños, estoy utilizando el pic 18f4550 y lo compilo con el maplab para obtener el .hex, ya le ajuste la velocidad a 9600 y tiene un cristal de 4Mhz no se si me puedan ayudar para poder visualizar los mensajes por la terminal virtual, el codigo es el siguiente:


#include <18F4550.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#define cuenta 15536 //TMR0-16bits 65536 - 50000=15536
                                    //4*50000*10=1,000,000 microseg
//*******************************************
#use delay(clock=4000000)
//*******************************************
// declaracion variables globales
long i =0,miliseg=0,seg=0,min=0,hr=0;
#use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7)

//*******************************************
// Rutina de servicio de interrupcion
#INT_TIMER1    //INT-Timer0                                                               
void clock_isr() {
  set_timer1(cuenta);
  i=i+1; // la variable contador se incrementa cada 100 ms   

  miliseg = (i*100);
                    
 
}

void main(void) {                             
  set_tris_d(0x00);  //RB como salidas
  SETUP_TIMER_1(T1_INTERNAL | T1_DIV_BY_2);
  SET_TIMER1(cuenta);

  ENABLE_INTERRUPTS(GLOBAL);
  ENABLE_INTERRUPTS( INT_TIMER1 );

 
  while(1){

  printf("%ld\r",i);
  printf("%ld\r",miliseg);

 }
}
« Última modificación: 04 de Mayo de 2023, 21:34:11 por jose_manuel »

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1937
    • Sicoy
Re:problemas con mplab y proteus
« Respuesta #1 en: 04 de Mayo de 2023, 22:51:06 »
Casi seguro que no está calibrado a 9600 bpm.

¿También en el simulador al dar clic derecho en el microcontrolador está calibrado un cristal de 4MHz?

Tal vez deberías hacer una prueba sin usar todavía la interrupción, algo muy simple printf("Hola ");
« Última modificación: 04 de Mayo de 2023, 22:54:45 por DominusDRR »
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Conectado Eduardo2

  • PIC24F
  • *****
  • Mensajes: 965
Re:problemas con mplab y proteus
« Respuesta #2 en: 04 de Mayo de 2023, 23:57:27 »
El problema lo tenés en:    #use delay(clock=4000000)

En CCS no podés usar el argumento que quieras porque te hace cualquier cosa con los fuses. En este caso, la velocidad del micro resultaba 1MHz -->  el baudrate era 2400bauds.

Los argumentos permitidos para 4MHz con el 18F4550 son:
#use delay(crystal=4MHz) ,  #use delay(internal=4MHz)   o  #use delay(oscillator=4MHz)
« Última modificación: 05 de Mayo de 2023, 01:29:17 por Eduardo2 »

Desconectado jose_manuel

  • PIC10
  • *
  • Mensajes: 2
Re:problemas con mplab y proteus
« Respuesta #3 en: 05 de Mayo de 2023, 17:14:01 »
Eduardo2 muchas gracias estas en lo correcto le cambie el #use delay(clock=4000000) por #use delay(crystal=4MHz) y ya lo pude solucionar estaba batallando mucho con esto, te lo agradezco


 

anything