/******************************************************************************* * ?????? * *******************************************************************************/ void main() { OSCCON = 0b01110010 ; // ???????8?????? OPTION_REG = 0b00000000 ; // ????I/O??????????????? ANSELA = 0b00000000 ; // ??????????????????I/O?????? TRISA = 0b00000110 ; // ???RA1(SCL)/RA2(SDA)????(RA3?????) WPUA = 0b00000000 ; // RA1/RA2??????????????? PORTA = 0b00000000 ; // ????????(??LOW???) RA4 = 0; __delay_ms(500); RA4 = 1; __delay_ms(500); int i = 0; // ?????????(????100KHz) InitI2C_Master(1) ; // ?????????????? // ICON OFF,??????(0-63),VDD=3.3V???,LCD?8??? LCD_Init(LCD_NOT_ICON,32,LCD_VDD3V,8) ; while(1) { if(RA4 == 0) i++; LCD_SetCursor(0,0) ; // ????????? LCD_Puts("-JP7FKF-") ; LCD_SetCursor(0,1) ; // ????????? LCD_Putc(i+0x30) ; } }
void main(void){ TRISDbits.TRISD3 = 0; TRISDbits.TRISD4 = 0; //timer configTimer(); //ad configADInterrupt(); configAD(); //usart configRS232(); configUSARTInterrupts(); //I2C InitI2C_Master(); //interrupts selectChanel(channel); for(int i = 0; i < 100; i++) __delay_ms(10); PORTDbits.RD4 = 0; for(int i = 0; i < 100; i++) __delay_ms(10); PORTDbits.RD4 = 1; for(int i = 0; i < 100; i++) __delay_ms(10); PORTDbits.RD4 = 0; for(int i = 0; i < 100; i++) __delay_ms(10); PORTDbits.RD4 = 1; for(int i = 0; i < 100; i++) __delay_ms(10); PORTDbits.RD4 = 0; srand(TMR0); //generate secret number between maxCont and minCont contTimer0 = (rand() % (maxCont + minCont)) + minCont; write_RTC_I2c(); while (1){ if(contLedRD4 == TIMER0_INTERRUPTS_PER_SECOND){ val++; if(val == contTimer0){ ADCON0bits.GO_DONE = 1; //Leitura de Posição de data no DS-1307. read_RTC_I2c(0x04); dia = leitura; __delay_ms(10); //Leitura de Posição de mês no DS-1307. read_RTC_I2c(0x05); mes = leitura; __delay_ms(10); //Leitura de Posição de ano no DS-1307. read_RTC_I2c(0x06); ano = leitura; __delay_ms(10); //Leitura de Posição da Hora no DS-1307. read_RTC_I2c(0x02); hora = leitura; __delay_ms(10); //Leitura de Posição de Minuto no DS-1307. read_RTC_I2c(0x01); minuto = leitura; __delay_ms(10); //Leitura de Posição de Segundo no DS-1307. read_RTC_I2c(0x00); segundo = leitura; //"id&valor&ano-mes-dia hora:minuto:segundo" printf("%u&%u&20%02X-%02X-%02X %02X:%02X:%02X", id, data_ADC, ano, mes, dia, hora, minuto, segundo); __delay_ms(10); //TODO tirar daqui printf("\n"); val = 0; contTimer0 = (rand() % (maxCont + minCont)) + minCont; } led1 = changing; contLedRD4 = 0; } } }
void main(void){ TRISDbits.TRISD3 = 0; //timer configTimer(); //ad configADInterrupt(); configAD(); //usart configRS232(); configUSARTInterrupts(); //I2C InitI2C_Master(); //interrupts selectChanel(channel); ADCON0bits.GODONE = 1; write_RTC_I2c(); //ligando o timer 0 TMR0ON = 1; while (1){ if(val == 30){ //Leitura de Posição de data no DS-1307. read_RTC_I2c(0x04); dia = leitura; __delay_ms(10); //Leitura de Posição de mês no DS-1307. read_RTC_I2c(0x05); mes = leitura; __delay_ms(10); //Leitura de Posição de ano no DS-1307. read_RTC_I2c(0x06); ano = leitura; __delay_ms(10); //Leitura de Posição da Hora no DS-1307. read_RTC_I2c(0x02); hora = leitura; __delay_ms(10); //Leitura de Posição de Minuto no DS-1307. read_RTC_I2c(0x01); minuto = leitura; __delay_ms(10); //Leitura de Posição de Segundo no DS-1307. read_RTC_I2c(0x00); segundo = leitura; //"id&valor&ano-mes-dia hora:minuto:segundo" printf("%u&%u&20%02X-%02X-%02X %02X:%02X:%02X", id, data_ADC, ano, mes, dia, hora, minuto, segundo); __delay_ms(10); //TODO tirar daqui printf("\n"); val = 0; } } }