Ejemplos en C de CCS para principiantes

hola amigos es la primera vez que subo un tema bueno en este caso es un pequeña coleccion de ejemplos realizados con ccs compiler 4.104.para los que recien se inician espero les ayude saludos....
 

Adjuntos

  • ccs ejemplos.rar
    3.7 MB · Visitas: 234
Interesante muy buen aporte... aunque tomalo como un comentario o sugerencia nomas :) lo hubieras seccionado por partes, o bloques, o secciones de programa, INFORMACION, EJEMPLOS BASICOS, EJEMPLOS CON PERIFERICOS, nose LCD TECLADO UART etc etc.

pero de igual modo buen aporte :)
 
amigo, te recomiendo que te cambies a ccs, no le pide nada a mikroC Y ccs es mas fácil


si es verdad... pero te alejas mucho del microcontrolador, con el tiempo te olvidaras de como es la arquitectura registros forma de proceso etc etc. porque ya no ves como trabaja el uC seria en ese caso C30 C18 HITECH para baja gamma o C32 para un pic32 :)

claro no tengo ningun desacuerdo con CCS C yo tambien lo uso a veces para no perder la costumbre y es "mas rapido".:apreton:
 
hola les recomiendo utilizar el picwizar para realizar proyectos, sobre todo si se usan los temporizadores pronto les envio como calcular tiempos.... esta incorporado en el ccs pic. también estos ejemplos sirven para cualquier pic.
 
descarguen esto si quieren utilizar el pic wizard facilita mucho sobre todo cuando uso temporizadores me ayuda a los calculos...:unsure:



porfa dejen sus comentarios o sugerencias, preguntas, sobre los ejemplos. estare al tanto de ellos...
 

Adjuntos

  • usa pic wizard.rar
    1.1 MB · Visitas: 98
Última edición:
Hola , estoy leyendo el libro y me encuentro con una duda que no dudo me ayuden a clarificar.
en el ejemplo de la pagina 112, dentro de main() , porque no se habilita la interrupcion del timer0 ? solo esta habilitada la del timer1
 
En el ejemplo de la pagina 112
¿De qué archivo? El archivo del post #1 solamente tiene 60 páginas y el del post #6 ya no existe.
¿Por qué no se habilita la interrupción del timer0 ? Solo está habilitada la del timer1
Porque seguramente no se está usando el desborde que generaría la interrupción y solo se está usando como contador.
Y si no, mejor copia y pega el código, por favor.
 
Gracias por responder. Este es el código, lo tomé del libro Compilador C CCS y Simulador Proteus para Microcontroladores PIC
C:
#include <16f877.h>
#fuses XT,NOWDT,NOPROTECT

#use delay(clock=4M)
#use standard_io(a)

#define LCD_DATA_PORT getenv("SFR:pORTD")
#define LCD_ENABLE_PIN  PIN_D0
#define LCD_RS_PIN      PIN_D1
#define LCD_RW_PIN      PIN_D2
#define LCD_DATA4       PIN_D4
#define LCD_DATA5       PIN_D5
#define LCD_DATA6       PIN_D6
#define LCD_DATA7       PIN_D7

#define use_portb_kbd TRUE

#include <lcd.c>
#include <kbd`.c>

int16 counter=0;

#int_timer1
void timer1_isr(void){
   counter =get_timer0();
   counter = counter*2*120;
    printf(lcd_putc,"%6lu rpm",counter);
    lcd_gotoxy(1,1);
    set_timer0(0);
    set_timer1(3036);
}

void main(){
      char k, kant="0";
      char PWMH=0,PWML=0;
      lcd_init();
      kbd_init();
      port_b_pullups(true);
      setup_timer_0(rtcc_ext_l_to_h|rtcc_div_2);
      setup_timer_1(T1_internal|T1_div_by_8);
      set_timer0(0);
      set_timer1(3036);
      enable_interrupts(int_timer1);
      enable_interrupts(global);

      while(1){
         k = kbd_getc();
         if(k=="\0") k=kant;
         if((k=="*")||(k="#")) K="0";
         kant = k;
         k = k-48;
         PWMH = k *28;
         PWML = 255-PWMH;
         for(PWMH;PWMH>0;PWMH--){
            output_high(pin_a0);}
         for(PWML;PWML>0;PWML--){
            output_low(pin_a0);}
      }
}
 
¿Lo ves? Es por lo que comenté anteriormente:
Porque seguramente no se está usando el desborde que generaría la interrupción y solo se está usando como contador.
El código dijo:
counter =get_timer0();
De esta forma solo se pone en 0 el Timer 0 y se deja correr hasta que se requiera leerlo.
Obviamente esto debe ser siempre antes de que desborde, conforme se configure.
 
Atrás
Arriba