Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature currently requires accessing the site using the built-in Safari browser.
#include <16F886.H> //Libreria del PIC Implementado.
#fuses HS, NOWDT, NOLVP, PUT, MCLR
#use delay( clock = 4M )
#byte port_B = 0x06
int Cont = 0;
#int_TIMER1
void templs( void )
{
Cont++;
if( Cont == 100 )
{
output_high( PIN_B3 );
}
else if( Cont == 200 )
{
output_low( PIN_B3 );
Cont = 0;
}
set_timer1( 15536 );
}
void main( void )
{
set_tris_B( 0x06 );
setup_timer_1( T1_INTERNAL | T1_DIV_BY_2 );
set_timer1( 15536 );
disable_interrupts( INT_TIMER1 );
enable_interrupts( GLOBAL );
while( 1 )
{
if( PIN_B1 == 0 && PIN_B2 == 1 )
{
set_timer1( 15536 );
enable_interrupts( INT_TIMER1 );
}
if( PIN_B1 == 1 && PIN_B2 == 0 )
{
disable_interrupts( INT_TIMER1 );
}
}
}
#include <16F886.H> //Librería del PIC Implementado.
#fuses HS, NOWDT, NOLVP, PUT, MCLR
#use delay( clock = 4M )
#byte port_B = 0x06
int Cont = 0;
#int_TIMER1
void templs( void ){
Cont++;
if( Cont == 100 ){
output_high( PIN_B3 );
}
else if( Cont == 200 ){
output_low( PIN_B3 );
Cont = 0;
}
set_timer1( 15536 );
}
void main( void ){
set_tris_B( 0x06 );
setup_timer_1( T1_INTERNAL | T1_DIV_BY_2 );
set_timer1( 15536 );
disable_interrupts( INT_TIMER1 );
enable_interrupts( GLOBAL );
while (true) {
if(input (PIN_B1 == 0 && PIN_B2 == 1 )){
set_timer1( 15536 );
enable_interrupts( INT_TIMER1 );
}
if( input (PIN_B1 == 1 && PIN_B2 == 0 )){
disable_interrupts( INT_TIMER1 );
}
}
}
#include <16f628A.h>
#fuses INTRC,NOWDT,NOPROTECT
#use delay (clock=4000000)
#bit s1= 0x05.3 // en esta parte no se cual seria el pin de entrada?
#bit s2 =0x05.4 // en esta parte no se cual seria el pin de entrada?
void main ()
{
while (true)
{
set_tris_a(0x3f);
if(s1==1 && s2==1)
{
output_b(0x00);
}
if(s1==1 && s2==0)
{
output_b(0x01);
delay_ms(50);
}
}
}
#include <16F886.H>
#device ADC = 10 //Resolucion del ADC.
#fuses XT, NOWDT, PUT, MCLR, NOLVP
#use delay( clock = 4000000 )
#byte port_B = 0x06
int B_fla, B_adc;
int16 V_adc_h, V_adc_l, Cont = 0;
void Con_tie( void ) //Conversion a Tiempo.
{
V_adc_h = read_adc(); //Toma el Valor del Adc.
V_adc_l = 1023 - V_adc_h; //Calcula el Valor en Bajo.
}
#INT_EXT //Interrupcion Externa.
void intext( void )
{
if( B_fla == 0 ) //Bandera de Cambio de Flanco.
{
B_fla = 1; //Cambia la Bandera de Flanco.
ext_int_edge( 0, H_TO_L ); //Cambia a Flanco de Bajada.
B_adc = 1; //Cambia la Bandera del ADC.
}
else if( B_fla == 1 ) //Bandera de Cambio de Falnco
{
B_fla = 0; //Cambia la Bandera de Flanco.
ext_int_edge( 0, L_TO_H ); //Cambia a Flanco de Subida.
B_adc = 0; //Cambia la Bandera del ADC.
}
}
#int_TIMER1 //Interrupcion de Timer1.
void timer1( void )
{
Cont++; //Contador se Incrementa.
if( Cont == V_adc_h ) //Condicion para el Tiempo.
{
output_high( PIN_B1 );
}
else if( Cont == V_adc_l )
{
output_low( PIN_B1 );
Cont = 0; //Reinicia el Contador.
}
set_timer1( 65632 );
}
void main( void )
{
B_fla = 0, B_adc = 0; //Inicializa la Bandera de Flanco y la Bandera de Adc y Contador de Timer1.
set_tris_B( 0x01); //Configura el Puerto B.
port_B = 0x01; //Inicializa el Puerto B
setup_adc_ports( SAN0 ); //Configura el Canal AN0.
setup_adc( ADC_CLOCK_INTERNAL );
set_adc_channel( 0 );
setup_timer_1( T1_INTERNAL | T1_DIV_BY_2 ); //Configura el Timer1.
set_timer1( 65632 );
disable_interrupts( INT_TIMER1 );
ext_int_edge( 0, L_TO_H ); //Configura la Interrupcion Externa.
enable_interrupts( INT_EXT );
enable_interrupts( GLOBAL ); //Habilita las Interruciones.
while( 1 )
{
if( B_adc == 1 ) //Condicion de la Bandera de Adc.
{
Con_tie();
set_timer1( 65632 ); //Carga el Timer1
enable_interrupts( INT_TIMER1 ); //Habilita la Interrupcion del Timer1.
}
else if( B_adc == 0 )
{
disable_interrupts( INT_TIMER1 ); //Deshabilita la Interrupcion del Timer1.
}
}
}
Eso puede ocurrir cuando abres un proyecto realizado con versiones anteriores al que usas actualmente.Que tal compañeros, buenas noches, bueno pues a la hora de instalar pic c compiler, no tuve problemas, pero a la hora de querer compilar me sale un error
"not found:
c:\users\victor\desktop\main.c"
Ya investigué acerca de este error pero no logro encontrar como solucionarlo, espero me puedan ayudar, desde ya mucas gracias.
/*
PROGRAMA PARA ENCENDER UNA CARGA MEDIANTE EL DESBORDAMIENTO DEL
TMR0 JUNTO CON LA ACTIVACIÓN DE LA BANDERA T0IF, EL DESBORDAMENTO
SE PRODUCIRÁ CON EL CONTEO DE FLANCOS DE SUBIDA EN EL PIN T0CKI.
*/
#include <16F887.h> // PIC a utilizar.
#use delay (clock = 8000000) // Frecuencia de trabajo.
#fuses XT, NOWDT
/* Se define el modo de gestión de los puertos B, C y D con #use fast_io(X)
donde X = A, B, C. D, E.
El usuario debe configurar las terminales de los puertos mediante
set_tris_X (valor), donde X es A, B, C, D, E y valor es un entero
de 8 bits.
*/
#use fast_io(a)
#use fast_io(d)
#use fast_io(c)
#bit bendera=0x0B.2
int1 bandera=0; // Se agrega a "bandera" el bit T0IF
int8 valor=0;
VOID main() {
set_tris_a(0b11111111);
set_tris_d(0b00000000);
set_tris_c(0b00000000);
output_c(0);
output_d(0);
SET_TIMER0(0);
SETUP_TIMER_0(RTCC_EXT_L_TO_H|RTCC_DIV_1);
set_timer0(0);
if (bandera == 1) output_high(pin_d0);
else (bandera == 0) output_low(pin_d0);
valor = get_timer0();
output_c(valor); // La variable led es llevada al portc
delay_ms(200);
}
En tu programa no utilizas ningún bucle para comprobar si se han ingresado pulsos por el pin T0CKI.Que tal! de nuevo yo jaja, bueno, tengo el siguiente programa, pero no logro mostrar el valor del TMR0 en el PORTC, dado que también quiero utilizar la bandera T0IF para activar el PORTD.0 cuando esta se active
#include <16f887.h>
#use delay(clock=16M)
#fuses HS, NOWDT
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8) // RS232
#use fast_io(c) // Modo de gestión del puerto C
#use fast_io(d)
//-----------------------------------------------------------------------------
void main(){
while(1){
set_tris_d(0b00000000);
output_d(0b00000001);
printf("\rVoltaje de linea");
delay_ms(1000);
output_d(0);
delay_ms(1000);
} // Fin del while
} // Fin de la función main
Que tal compañeros, pues yo tengo el problema de que mando una simple línea al Hyperterminal y nada, salen puros símbolos sin sentido.
//Envia un dato desde la Pc al pic por el puerto serie y envía "recibido"
#include<16F887.h>
#fuses INTRC_IO,NOWDT
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
#include<LCD.c>
char ch;
#int_rda
void serial_isr(){
ch=getchar();
printf(lcd_putc,"\n Recibido: %ch"ch); //Muestra en LCD
}
void main()
{
lcd_init();
enable_interrupts(global);
enable_interrupts(int_rda);
for(;;){
delay_ms(1000);
printf(lcd_putc,"\n Enviando... "); //Muestra en LCD
printf("\n Cadena de caracteres"); //Envia por puerto serie
delay_ms(1000);
}
}
while(1==1){ // Ciclo infinito
x = getc();
if(x >= '0' && x <= '9'){
printf(lcd_putc,"%c",x);
val[k]=x;
k=k+1;
}
if(k==4){
lcd_putc('\f'); // Se borra la pantalla
k=0;
}
}