int main(int argc, char **argv){ /* Read program options */ while(1){ static struct option long_options[]= { {"verbose", no_argument, &_DEBUG, 1}, {"debug", no_argument, &_DEBUG, 1}, {"help", no_argument, 0, 'h'}, {"read", required_argument, 0, 'r'}, {"write", required_argument, 0, 'w'}, {"sync", required_argument, 0, 's'}, {0, 0, 0, 0} }; int option_index = 0; int c = getopt_long(argc, argv, "hs:w:r:", long_options, &option_index); if (c == -1) { break; } switch(c) { case 'v': _DEBUG = 1; break; case 'h': Print_Help(); break; case 'r': DEVICE = atoi(optarg); Read_RTC(); break; case 'w': DEVICE = atoi(optarg); Write_RTC(); break; case 's': DEVICE = atoi(optarg); Sync_RTC(); break; case '?': break; default: break; } } return 0; }
void Setup(void) { OSCTUNEbits.INTSRC=1; //setea el oscilador de 32768 para el RTC OSCTUNEbits.PLLEN=0; //desactiva PLL OSCCONbits.IRCF0=1; //selecciona el clock en 8MHz OSCCONbits.IRCF1=1; OSCCONbits.IRCF2=1; OSCCONbits.SCS0=0; //oscilator INTRC OSCCONbits.SCS1=0; TRISA = 0b11111111; TRISB = 0; TRISC = 0b00000111; //TRISAbits.TRISA0=1; //TRISBbits.TRISB0=0; //TRISCbits.TRISC0=0; ANCON0=0b11111111; // Config AN7 to AN0 Digital Ports ANCON0=0b10010111; // Config AN11 Analog Port ADCON0=0b00101101; // Control AN11 Analog Port ADCON1=0b00010000; // Config Analog Port RTCCFGbits.RTCEN=1; RTCCFGbits.RTCWREN=1; T1CONbits.T1OSCEN=1; Write_RTC(); lcd_init(); lcd_comand(0b00001100); //Display=on / Cursor=off / Blink=off LED_2_Off; LED_3_Off; }
void update_rtc() { Start_RTC(); PtrPCF8563->SEC = 0; // SEC PtrPCF8563->MIN = 50; // MINUTE PtrPCF8563->HOUR= 2; // HOUR PtrPCF8563->DAYS=20; // week day PtrPCF8563->WEEKDAYS=1; // DAYS PtrPCF8563->MONTH=5; // month PtrPCF8563->YEAR=14; //year Write_RTC(); }