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.
/*
* File: Main.c
* Author: nuyel
*
* Created on 21 de febrero de 2017, 11:08 PM
*/
#include <stdio.h>
#include <stdlib.h>
#include <xc.h>
// PIC12F675 Configuration Bit Settings
// 'C' source line config statements
// CONFIG
#pragma config FOSC = INTRCIO // Oscillator Selection bits (INTOSC oscillator: I/O function on GP4/OSC2/CLKOUT pin, I/O function on GP5/OSC1/CLKIN)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF // Power-Up Timer Enable bit (PWRT disabled)
#pragma config MCLRE = OFF // GP3/MCLR pin function select (GP3/MCLR pin function is digital I/O, MCLR internally tied to VDD)
#pragma config BOREN = OFF // Brown-out Detect Enable bit (BOD disabled)
#pragma config CP = OFF // Code Protection bit (Program Memory code protection is disabled)
#pragma config CPD = OFF // Data Code Protection bit (Data memory code protection is disabled)
// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.
/*
*
*/
#define LEDBIT _GPIO_GPIO4_MASK
#define _XTAL_FREQ 4000000
//__CONFIG(MCLRE_OFF & CP_OFF & BOREN_OFF & WDTE_OFF & FOSC_INTRCIO & PWRTE_ON);
void main() {
TRISIO = 0;
GPIO = 0;
while(1){
GPIObits.GP4 ^= 1;
GP5 = 1;
__delay_ms(500);
GP5 = 0;
__delay_ms(500);
}
}
Pues no es así.Cada ves mas problemáticos, normalmente cuando algo no se usa en otro microcontrolador se inicia desactivado como predeterminado, supongo que el error viene por que el PIC opera con Read-Modify-Write, con ANSEL sin configurar los pines devolvían 0 por lo que el bitwise operaba en 0 siempre.
extern volatile unsigned char ANSEL @ 0x09F;
#ifndef _LIB_BUILD
asm("ANSEL equ 09Fh");
#endif
Declarándolo de esta forma que es más sencillo que buscar su dirección:Cuando hablas de esos registros en los mensajes anteriores, el CCS tiene funciones que acceden a los registros ya sea de interrupciones o flags, sin embargo no creo que contenga todos los que dispone un PIC, por ello mi pregunta en el caso del ANSEL.
¿Cómo puedo acceder a este registro y a los demás?
La forma de declaración que mostré, es válida.Porque en el CCS no me deja declararlo como el programa de NUYEL, el cual está en otro compilador.
Pienso que al declararlo ¿Debería estar en forma de ensamblador?
Bueno, porque sí no, no me pueden funcionar bien los pines analógicos si los quiero utilizar como digitales.
#include <xc.h>
#define _XTAL_FREQ 12000000
#include "CONFIG.h"
#define LED RD0
int T;
int angle;
//int estado;
//#define Pulso RB0
void interrupt inicio()
{
if(INTF==1){
T=(angle*16.6)/360;
__delay_ms(T);
LED=1;
__delay_ms(1);
LED=0;
INTF=0;
}
}
void main(void) {
TRISD=0x00;
PORTD=0;
TRISB=0xFF;
OPTION_REG=0b00000000;
GIE=1;
PEIE=1;
INTE=1;
//estado=0;
//INTCONbits.GIE=1;
//INTCONbits.INTE=1;
//OPTION_REGbits.INTEDG=1;
while(1)
{
angle=30;
}
}
Sí, a ese. Y está mal conectado porque debe haber un solo generador de CA.Al referirte de por qué está conectado de esa forma el generador te refieres al 220VAC que esta al lado del triac? Esta mal conectado por qué?
¿De cuáles bits? Si son los de la palabra de configuración únicamente te estás ahorrando una línea para ese PIC. (16F877A)La librería "CONFIG.h" es una cabecera, dentro de ésta se encuentra las configuraciones de los bits , lo añadí como librería para no tener muchas líneas de programa.
Está mal si siempre mantiene el mismo valor, o sea: angle = 30;Al parecer está mal que la variable "angle" vaya sólo dentro del while. Podrías sugerirme cómo podría mejorar todas las observaciones amigo Dark ?