Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

28/09/2010 #21

Avatar de ByAxel

Respuesta: Programa en CCS para el pic 16F877A
f0raster0 dijo: Ver Mensaje
Al presionar un botón en RB0 se enciende el led conectado en RB1.. el problema es que al simularlo en Proteus me da error, estoy culpando al error de warning que me da al compilar el firmware..

warning 203 "hola1.c" Line17(1,1): Condition always TRUE
Memory Usage: ROM=0% RAM=2%
0 Errors, 1 Warnings.

La línea 17 es la donde está: "{ antes del if
Me pueden echar una mano con ese mensaje de precaución??

Gracias desde el fin del mundo..
En while(1) pon while(TRUE), ya se que parece poca cosa pero así es como lo pide el compilador del ccs...

saludos
28/09/2010 #22


Respuesta: Programa en CCS para el pic 16F877A
ByAxel..¡¡¡

Gracias.. ha funcionado de maravilla la compilación.. luego lo pruebo en Proteus y de allí a la placa de prueba de microchip..

Estoy ansioso que llegue el libro C CCS desde el país del norte.. para continuar practicando..

Nuevamente gracias desde las tierras de sol y cobre..
18/09/2011 #23


Buenas tardes, yo estoy en las mismas usando el if de la siguiente manera (las funciones y variables definidas aparte son para usarlas posteriormente):
#include "C:\Users\valery\Documents\UCV\Tesis\Microcontrola dor e interfaces\Simulaciones\batería a cargar.h"

long cbat(); long cpanel(); long bat(); long vpanel(); long ccorto();
void main()
{
long corpanel, vpanel, vbat;
set_tris_B(0xfe);
//setup_adc_ports(sAN2|sAN3|sAN4|VSS_VDD);
//setup_adc_ports(ALL_ANALOG);
//setup_adc(ADC_CLOCK_DIV_2);
//set_tris_A(0b11111100);

//Setup_Oscillator parameter not selected from Intr Oscillator Config tab
// TODO: USER CODE!!

//Si el voltaje de los paneles es mayor al de la batería,
//deja pasar corriente a la batería.
if (PIN_B0>0)
output_b(0x00);
//bat();
else
output_b(0xff);
}
//***********************Declaración de rutinas*******************************

long vpanel()
{
set_adc_channel(0);
output_b(read_adc());
}
long ccorto()
{
set_adc_channel(1);
delay_us(20);
output_b(read_adc());
}
long bat()
{
set_adc_channel(2);
delay_us(20);
output_b(read_adc());
}
long cpanel()
{
set_adc_channel(3);
delay_us(20);
output_b(read_adc());
}
long cbat()
{
set_adc_channel(4);
delay_us(20);
output_b(read_adc());
}
19/09/2013 #24


hola ByAlex, yo nesecito el driver lcd flex y fui a tu dirección para buscar el archivo pero me apareció un código,la verdad no se muy bien pero yo pensé que encontraría un archivo para poder guardarlo la crapeta de los drivers de mi programa o no se si seras tan amable de decirme como usarlo
19/09/2013 #25

Avatar de ByAxel

1rodrigochino dijo: Ver Mensaje
nesecito el driver lcd flex y fui a tu dirección para buscar el archivo pero me apareció un código,la verdad no se muy bien pero yo pensé que encontraría un archivo para poder guardarlo la crapeta de los drivers de mi programa o no se si seras tan amable de decirme como usarlo
Hola, lo explican por aquí. Hace tiempo que no uso el CCS pero diria que este no va a funcionar (creo) con copiar a la carpeta de "Driver" como una libreria más... igual prueba. Generalmente hacia una copia de la libreria y lo agregaba en la misma carpeta donde está el resto de código... main y demás.
19/09/2013 #26


mmmmm ByAxel me temo que te entendí muy poco, pero por lo que te entendí lo que hice fue copiar el codigo en el compilador PCW de ccs,y realice un nuevo archivo en con en source file con extencion .c pero al compilarlo me mando un error eso producirá un problema con mi otro codigo que estoy realizando o no afecta, gracias de antemano por tu respuesta
20/09/2013 #27

Avatar de ByAxel

1rodrigochino dijo: Ver Mensaje
lo que hice fue copiar el codigo en el compilador PCW de ccs,y realice un nuevo archivo en con en source file con extencion .c pero al compilarlo me mando un error eso producirá un problema con mi otro codigo que estoy realizando o no afecta, gracias de antemano por tu respuesta
Que dice el error.
Es mejor hacer una copia de la libreria flex_lcd.c por cada proyecto donde involucre un LCD ya que es suceptible a cambios.
Saludos
20/09/2013 #28


aquí te adjunto el error, dice que requiere device se lo puse y manda mas errores y otra_vez gracias
Imágenes Adjuntas
Tipo de Archivo: jpg erro.jpg (13,6 KB (Kilobytes), 11 visitas)
21/09/2013 #29

Avatar de ByAxel

Debes de declarar el tipo de dispositivo arriba de todo #DEVICE PICxxxx. que generalmente está en un archivo *.h y luego ya el resto como #DEFINE, #INCLUDE, etc...
28/10/2014 #30


Corazon en un lcd
Hola alguno de ustedes sabe como reflejar un corazón en un lcd utilizando el puerto d que es por defaul?
eh intentado con varias formas pero no me ah salido :S
28/10/2014 #31
Moderador

Avatar de D@rkbytes

Jgmicro dijo: Ver Mensaje
Hola. ¿Alguno de ustedes sabe como reflejar un corazón en un lcd utilizando el puerto d que es por default?
He intentado con varias formas pero no me ha salido.
Mira el ejemplo adjunto, realicé dos tipos de caracteres personalizados que se almacenan en la CGRAM de la pantalla.

Espero que sea lo que estás intentado hacer.

Suerte.
Archivos Adjuntos
Tipo de Archivo: rar 16F877A Corazones en LCD.rar (44,9 KB (Kilobytes), 39 visitas)
28/10/2014 #32


yo tengo un programa que se llama "generador cgram", te permite hacer el carácter que quieras en la matriz de 5*7 y luego te genera el código para el pic en lenguaje ensamblador o en C para css.
15/12/2015 #33


Quiero testear siempre unos estados pero que me corra un switch de un menú.
La idea es que el menú siempre esté corriendo y cuando yo cambie el estado se vean los cambios.
¿Cómo se podría hacer eso?

---------- Actualizado después de 2 minutos ----------

Código PHP:
#include<16f88.H> 
#FUSES INTRC_IO,nowdt,PUT,noprotect 
#use delay(clock = 8000000) 
#use rs232 (baud =9600,XMIT =PIN_b5,RCV =PIN_b2,BITS=8,PARITY =N,FORCE_SW,INVERT)


const char pass[]={'i','c','e','1'}; //constante con la clave
int ban=0;
char PRENDER_LED
void MENU()
{
   
puts("\f                OPRIMA BARRA PARA REGRESAR A MENU\n\n");
   
puts("\r OPRIMA 0 ESTADOS\r\n");
   
puts("oprima 1 PARA ABRIR LA PUERTA\r\n");
   
puts("oprima 2 PARA CERRAR LA PUERTA\r\n");
   
puts("oprima 3 PARA ACTIVAR ALARMA\r\n");
   
puts("oprima 4 LUZ DEL CUARTO\r\n");
}
VOID ALARMA(){
char key;      //variable para pulsación del teclado
char dato[4];  //variable vector para ir guardando cada uno de las pulsaciones de caracteres
int i=0;
   while(
true){
   
output_bit(52,0);
              if(
input(PIN_B4)==1)
      {
            
PRINTF("\fTeclee el pasword para desactivar la alarma\r\r");
            
output_bit(53,1);
      while(
i<=3)       //Este ciclo permite ingresar
      
{                 //cuatro digitos
      
key=getc();
      if(
key!=0){
      
dato[i]=key;
      
i++;
      
delay_ms(100);
      }}
      
i=0;
      if((
dato[0]==pass[0])&&(dato[1]==pass[1])&&(dato[2]==pass[2])&&(dato[3]==pass[3]&&input(PIN_b4)==0))
      {
      
      
output_bit(52,0);output_bit(53,0);
      
printf("\f CORRECTO BIENVENIDO A CASA");
      break;
      }
            
      else
      {
      
printf("\f Incorrecto int");
      
delay_ms(1000);
      }
      }
   }
}
 
   
VOID main ()
   {
      
output_bit(48,0);
      
output_bit(42,0);
      
output_bit(43,0);
      
printf("                     PULSE BARRA\r");
      
printf("\f ENTRADA1 : %u\r\n",INPUT(PIN_A0));
      
printf(" ENTRADA2 : %u",INPUT(PIN_A1));
      
OUTPUT_BIT(41,0);
      IF(
INPUT(PIN_A0)==1){OUTPUT_BIT(41,1);
      while(
INPUT(PIN_A0)==1){}
      
ban=1;}
      if(
ban==1){OUTPUT_BIT(41,0);
      
BAN=0;}
      FOR (;;){
           
PRENDER_LED=getch();
      SWITCH (
PRENDER_LED){ 
      CASE 
' 'MENU();
      BREAK;
      CASE 
'0'output_toggle(PIN_A4);
      BREAK;
      CASE 
'1':  output_toggle(PIN_A2),output_bit(54,1);
      BREAK;
      CASE 
'2':  output_toggle(PIN_A3),output_bit(55,1);
      BREAK;
      CASE 
'3'ALARMA(); 
      break;
      }}} 
Este es mi código pero testea y entra al menú, y cuando hago los cambios en las entradas, no me los lee.
¿Habrá alguna forma que sea sin interrupción? Que sean sólo las banderas.
Porque me han comentado que eso se logra con unas banderas booleanas.
En realidad ya intenté varias veces, pero me corre o el Switch o los IF y ni siquiera se ven los cambios de los estados.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.