Ir ao conteúdo
  • Cadastre-se

Arthur Caviquioli

Membro Júnior
  • Posts

    7
  • Cadastrado em

  • Última visita

Tudo que Arthur Caviquioli postou

  1. @GabrielLP14 boa noite, eu atualizei para a versao UA9 UEFi, Se ela nao aceitar o downgrade, sera que nao tem como forçar um, talvez reescrever ela de alguma forma, de modo que posso eu mesmo fazer em casa?
  2. Galera, a um tempo atras eu fiz um upgrade na bios dessa mobo para a versao uefi que estava em beta, e desde entao alguns perifericos (headset razer) nao funcionaram corretamente, e alguns programas pararam de ser compativeis, minha duvida é a seguinte, como fazer downgrade na bios. eu ate cheguei a achar uns post gringos, mas muito breves, e nao entendi muito. desde já agradeço
  3. @Isadora Ferraz @mister nintendo obgd galera, eu jà pensei em falar com o dono, mas o problema é q eu nem sei quem é. brigadao mesmo
  4. n sei se é complicado, optei em uma fonte nova kkkk ,atualizar a bios pode funcionar, mas é arriscado , se a energia cair na hora da atualizaçao e desligar o pc ,corrompe a bios dai ja era antes de atualizar pesquise um pouco mais,só por garantia
  5. uma vez onde trabalho,usei uma fonte de pc para alimentar um projeto, sendo q usei uma fonte que nessecitava desse sinal do pc; então eu tive 2 escolhas, ou trocava essa fonte para uma q n nessecitase desse sinal,ou bolar algum jeito d criar esse sinal. o que eu quero dizer é que vai q essa corsair precise deste sinal e sua placa-mãe n manda e sua fonte antiga n precisa do sinal porisso ela liga normal
  6. amigo, nao conheço nada desta area, mas vou tentar ajuda-lo mas fiquei sabendo q tem no mercado fontes q só "liberam" energia ao pc se o pc mandar um "sinal" para ela
  7. Galera,sou novo aqui no forum e vim tirar uma duvida com vocês. eu achei pesquisando na internet um projeto com o pic16f877a de um radio relogio com despertador e termometro entre outras caracteristicas,o esquema ta tudo certo,mas o programa aparecem erros ao compilar, tentei compilar pelo mikroC pro,mplab x ide e tambem pelo mplab ide 8, todos aparecem erros,então eu queria ver se vocês podiam me ajudar obs:nao entendo muito de programaçao,lendo o codigo creio q é linguagem C link o projeto:https://antoniopolo.wordpress.com/2012/03/06/radio-fm-pll-digital-termometro-relogio-pic16f877a/ codigo: </pre> <pre>// LCD module connections sbit LCD_RS at RB4_bit; sbit LCD_EN at RB5_bit; sbit LCD_D4 at RB0_bit; sbit LCD_D5 at RB1_bit; sbit LCD_D6 at RB2_bit; sbit LCD_D7 at RB3_bit; sbit LCD_RS_Direction at TRISB4_bit; sbit LCD_EN_Direction at TRISB5_bit; sbit LCD_D4_Direction at TRISB0_bit; sbit LCD_D5_Direction at TRISB1_bit; sbit LCD_D6_Direction at TRISB2_bit; sbit LCD_D7_Direction at TRISB3_bit; // End LCD module connections //DS1307 RTC Interfacing with PIC16F877A sbit I2C1_Scl at RC3_bit; sbit I2C1_Sda at RC4_bit; sbit I2C1_Scl_Direction at TRISC3_bit; sbit I2C1_Sda_Direction at TRISC4_bit; //I2C via software with PIC16F877A - via hardware deu erro para ler o Chip FM sbit Soft_I2C_Scl at RD2_bit; sbit Soft_I2C_Sda at RD3_bit; sbit Soft_I2C_Scl_Direction at TRISD2_bit; sbit Soft_I2C_Sda_Direction at TRISD3_bit; // End Software I2C connections // Botoes de sintonia #define BUTTON_DOWN (PORTD.F0 == 0) //search down #define BUTTON_UP (PORTD.F1 == 0) //search up #define BUTTON_SET2 (PORTD.F4 == 0) #define BUTTON_SET1 (PORTD.F5 == 0) #define BUTTON_SNOOZE (PORTD.F7 == 0) #define mem_fm_qtd 25 //quantidade de posicoes de memoria para estacoes #define tempo_exposicao 50 // tempo exposicao da temperatura #define tempo_exposicao2 100 // tempo exposicao data //Range de Frequencias Europa #define FREQ_HIGH 108 #define FREQ_LOW 87.5 //nivel do sinal simbolo #define nivel_clear Lcd_Chr(1,1,' '); Lcd_Chr(1,2,' '); Lcd_Chr(1,3,' '); Lcd_Chr(1,4,' ') #define rele_on PORTB.F7 = 1 #define rele_off PORTB.F7 = 0 //define functions void Display_Temperature(unsigned int temp2write, unsigned int linha); void Sintoniza_freq(float frequex); //sintoniza frequ fixa void Le_freq(); //ler o chip FM carregando as variaveis void display_freq(float freqrep); //mostra frequencia void display_sinal(); // mostr ao nivel do sinal void recup_freq(int freq_addr, int sint_yn); //recupera freq da eprom e 0=nao sintoniza / 1=sintoniza void grava_Freq(int freq_addr); //grava 2 bytes da pll no eprom void display_mem(short int mem_fm); // mostra a frequencia de uma determ posic memoria =1,2,3,4,5 void acerta_relogio (unsigned short xtipo); void write_ds1307(unsigned short address,unsigned short w_data); //escreve hora unsigned short read_ds1307(unsigned short address); //le hora unsigned char BCD2UpperCh(unsigned char bcd); //usada no relogio unsigned char BCD2LowerCh(unsigned char bcd); //usada no relogio void holdx(); // testa tempo de pressao na tecla - vai para ajste alarme ou ajuste hora void alarme(); //ajusta alarme //char bcd_to_bin(char bcd); //void checa_alarm(); //end define functions //variaveis do termometro unsigned char *tempC = "000.0"; unsigned int tempinC; unsigned long temp_value; unsigned char txt[15]; //Variaveis do FM char frequencyH=0; char frequencyL=0; int frequencyB; long int frequency=0; char buffer[5]; float freq_available=0; float freq_available2=0; short int showtime; //showtime variavel para shift no display : data x temp unsigned int cnt; short int flag_exp; //flag para shift display data x temper short int niv; //nivel do sinal short int st_flag; //informacao de stereo short int freq_eprom1; //byte1 da freq recuperado da eprom short int freq_eprom2; //byte2 da freq recuperado da eprom float freq_now; int memoria_fm; int hold_bt; //contador para apertar e segurar o botao - set hora int temp_min; //variaveis temps alarme int temp_hour; //variaveis temps alarme //variaveis de acerto de relogio unsigned short xchar; //dois digitos do valor (hora, mes, dia..) para a funcao de acerto do rlogio //variaveis do relogio //unsigned int sec; unsigned short int minute; unsigned short int hour; unsigned short int day; unsigned short int date; unsigned short int month; unsigned short int year; unsigned char time[9]; unsigned char ddate[9]; unsigned char ddate2[9]; //data temporaria para ajuste de hora //variaveis do alarme unsigned short a_hour; unsigned short a_min; unsigned short cnt2; unsigned short xalarme; //alarme 0 = alarme off, 1, 2, 3 = qtd do snooze bit in_alarm; // se 1 o alarme esta acionado se 0 o alarme nao esta acionado void main() { TRISB = 0; // PORTB saida do display lcd //termometro porta analogicas ADCON1 = 0b10000000; // 1- opcao osc, 0- left justif, 00-void, 0000 - vref+=vdd vref-=vss todas as portas an = A analogicasA TRISA = 0b00110011; //ra0/an0 e ra1/an1 inputs lm35 TRISD =0xFF; // porta de sera input dos botoes CMCON = 0x07; // Disable Comparators Lcd_Init(); // Initialize LCD Lcd_Cmd(_LCD_CLEAR); // Clear LCD display Lcd_Cmd(_LCD_CURSOR_OFF); // Turn cursor off I2C1_Init(32768); //Inicia o DS1307 I2C e define a frequencia do xtal - xtal do tipo de relogio Soft_I2C_Init(); //Delay_ms(50); //recupera e sintoniza ultima frequencia sintonizada recup_freq(0x00, 1); //Delay_ms(500); Le_freq(); //le freque inicial freq_now=freq_available2; display_freq(freq_now); //display frequencia //teste do relogio //================================ write_ds1307(0,0x00); //================= loop principal - inicio =================// //================= loop principal - inicio =================// //================= loop principal - inicio =================// memoria_fm = 1; showtime = 1; //controla tempo de exibicao da hora x temperatura flag_exp = 0; in_alarm = 0; //alarme nao esta acionado //le informacoes do alarme - hora, min, e snooze //a_hour= EEPROM_Read(0xAA); // posicoes de memoria para hora e minuto //a_min= EEPROM_Read(0XAF); while(1) { temp_value = ADC_Read(0); // le o sensor numero 1 temp_value = temp_value*5000;//1077; //1168; tempinC = temp_value/1000; tempinC = tempinC*10; if(showtime >= tempo_exposicao) if(showtime < tempo_exposicao2) //controle tempo de exposicao da hora x temperatura { VDelay_ms(15); if(flag_exp == 1) { Lcd_Out(2,1," "); Lcd_Chr(2,3,223); //imprime o grau celcius e o C Lcd_Chr(2,4,'C'); Display_Temperature(tempinC,2); flag_exp =0; //tratamento impressao do dia da semana ddate2[6] = BCD2UpperCh(day); ddate2[7] = BCD2LowerCh(day); ddate2[8] = '\0'; if(ddate2[7] == '1') {Lcd_Chr(2, 6, 'D');Lcd_Chr(2, 7, 'o');Lcd_Chr(2, 8, 'm');} if(ddate2[7] == '2') {Lcd_Chr(2, 6, 'S');Lcd_Chr(2, 7, 'e');Lcd_Chr(2, 8, 'g');} if(ddate2[7] == '3') {Lcd_Chr(2, 6, 'T');Lcd_Chr(2, 7, 'e');Lcd_Chr(2, 8, 'r');} if(ddate2[7] == '4') {Lcd_Chr(2, 6, 'Q');Lcd_Chr(2, 7, 'u');Lcd_Chr(2, 8, 'a');} if(ddate2[7] == '5') {Lcd_Chr(2, 6, 'Q');Lcd_Chr(2, 7, 'u');Lcd_Chr(2, 8, 'i');} if(ddate2[7] == '6') {Lcd_Chr(2, 6, 'S');Lcd_Chr(2, 7, 'e');Lcd_Chr(2, 8, 'x');} if(ddate2[7] == '7') {Lcd_Chr(2, 6, 'S');Lcd_Chr(2, 7, 'a');Lcd_Chr(2, 8, 'b');} } showtime++; } else { showtime= 1; } Delay_ms(50); //Acerto de Estacoes de FM //le hora e imprime //======================= //sec=read_ds1307(0); // read second minute=read_ds1307(1); // read minute hour=read_ds1307(2); // read hour day=read_ds1307(3); // read day date=read_ds1307(4); // read date month=read_ds1307(5); // read month year=read_ds1307(6); // read year time[0] = BCD2UpperCh(hour); time[1] = BCD2LowerCh(hour); time[2] = ':'; time[3] = BCD2UpperCh(minute); time[4] = BCD2LowerCh(minute); time[5] = '\0'; ddate[0] = BCD2UpperCh(date); ddate[1] = BCD2LowerCh(date); ddate[2] ='.'; ddate[3] = BCD2UpperCh(month); ddate[4] = BCD2LowerCh(month); ddate[5] ='.'; ddate[6] = BCD2UpperCh(year); ddate[7] = BCD2LowerCh(year); ddate[8] = '\0'; // checa alarme liga rele a_min= EEPROM_Read(0XAF); a_hour= EEPROM_Read(0xAA); xalarme= EEPROM_Read(0XB2); temp_min = minute; //conversoes de hora minuto temp_min = ((temp_min>>4)&0x0f)*10 + (temp_min&0x0f); //bcd to dec temp_hour = hour; temp_hour = ((temp_hour>>4)&0x0f)*10 + (temp_hour&0x0f); //bcd to dec if (xalarme >0) //alarme on - snooze maior que zero { if (temp_hour == a_hour && temp_min== a_min && !in_alarm) //dispara alarme { in_alarm = 1; rele_on; write_ds1307(7,0x10); xalarme--; //snooze menos 1 if (xalarme 59) {a_min=0; a_hour++; if (a_hour > 23) a_hour = 0;} //ajuste estouros EEPROM_Write(0xAA, a_hour); //regrava alarme EEPROM_Write(0xAF, a_min); EEPROM_Write(0xB2, xalarme); in_alarm =0; // rehabilita alarme } } } if (xalarme >0) Lcd_Chr(2, 11, 'a'); else Lcd_Chr(2, 11, ' ');//indicador de alarme ligado if(BUTTON_SNOOZE){ write_ds1307(7,0x00); PORTB.F7 = ~PORTB.F7; Vdelay_ms(500);} // botao snooze Lcd_Out(2,12,time); if(showtime < tempo_exposicao) //controle tempo de exposicao da data x temperatura { if(flag_exp == 0) { Lcd_Out(2,1," "); Lcd_Out(2,1,ddate); flag_exp =1; } showtime++; } if(BUTTON_DOWN) //search down { while(BUTTON_DOWN) // incrementa sem sintonizar { freq_now = freq_now - 0.1; display_freq(freq_now); VDelay_ms(50); } Sintoniza_freq(freq_now); VDelay_ms(100) ; Le_Freq(); } if(BUTTON_UP) //search up { while(BUTTON_UP) // incrementa decrem sem sintonizar { freq_now = freq_now + 0.1; display_freq(freq_now); VDelay_ms(50); } Sintoniza_freq(freq_now); VDelay_ms(100) ; Le_Freq(); } if(BUTTON_SET1) //menu de memorizacao de estacoes { hold_bt = 0; // pressionar e segurar o botao de SET- ajuste de hora holdx(); //ajuste de hora e alarme if (hold_bt > 800) // ajuste de hora { write_ds1307(0,0x80); //write sec stop oscilator acerta_relogio(2); //hour acerta_relogio(1); //minute acerta_relogio(4); //date acerta_relogio(5); //month acerta_relogio(6); //year acerta_relogio(3); //day write_ds1307(0,0x00); //Reset second to 0 sec. and start Oscillator } if (hold_bt > 440) if (hold_bt cnt=0; memoria_fm = 1; display_mem(memoria_fm); while(cnt<550) { VDelay_ms(5); // COMENTADO PARA LIBERAR MEMORIA // if(BUTTON_DOWN) //decresce memoria // { // VDelay_ms(15) ; // cnt=0; //while(BUTTON_DOWN) // debounce button //{ // memoria_fm = memoria_fm -2; // if (memoria_fm mem_fm_qtd) memoria_fm=1; display_mem(memoria_fm); VDelay_ms(100) ; //} } if(BUTTON_SET2) //memoriza estação { VDelay_ms(15) ; //while(BUTTON_SET2) //{ recup_freq(0x00,0); //recupera a frequencia atual atualiza variaveis Delay_ms(500); Le_freq(); // le frequencia do FM e atualiza variaveis grava_Freq(0x00+(memoria_fm+1)); cnt=1000; //} } cnt++; } Lcd_Cmd(_LCD_CLEAR); /* if (cnt == 1001) // saiu pois memorizou a estacao = mantem estacao e grava na memoria a mesma { Lcd_Cmd(_LCD_CLEAR); recup_freq(0x00,1); //recupera a frequencia atual atualiza variaveis freq_now=freq_available2; display_freq(freq_now); //display frequencia Le_freq(); // le frequencia do FM e atualiza variaveis } if (cnt == 550) //saiu por time out = sintoniza a estacao corrente da memoria { Lcd_Cmd(_LCD_CLEAR); display_freq(freq_now); //display frequencia Le_freq(); // le frequencia do FM e atualiza variaveis } */ } //end do if de set1 - memoriza estacoes if(BUTTON_SET2) //browse estacoes memorizadas { cnt=0; display_mem(memoria_fm); while(cnt<150) { VDelay_ms(15) ; if(BUTTON_DOWN) //acresce memoria { VDelay_ms(15) ; cnt=0; //while(BUTTON_DOWN) // debounce button // { memoria_fm = memoria_fm -2; if (memoria_fm mem_fm_qtd) memoria_fm=1; display_mem(memoria_fm); VDelay_ms(100) ; recup_freq(0x00+(memoria_fm+1),1); //recupera a frequencia atual atualiza variaveis freq_now=freq_available2; display_freq(freq_now); //display frequencia Le_freq(); // le frequencia do FM e atualiza variaveis Sintoniza_freq(freq_now); //} } cnt++; } display_sinal(); // mostr ao nivel do sinal } //end do if de set2 - browse estacoes } //end while //================= loop principal - final =================// //================= loop principal - final =================// //================= loop principal - final =================// } // end main void Display_Temperature(unsigned int temp2write, unsigned int linha) { if (temp2write/10000)// convert Temp to characters// 48 is the decimal character code value for displaying 0 on LCD tempC[0] = temp2write/10000 + 48; else tempC[0] = ' '; tempC[1] = (temp2write/1000)%10 + 48; // Extract tens digit tempC[2] = (temp2write/100)%10 + 48; // Extract ones digit tempC[4] = (temp2write/10)%10 + 48; // Extract tens digit Lcd_Chr(linha,1,tempC[1]); // print temperature on LCD Lcd_Chr(linha,2,tempC[2]); } void Sintoniza_freq(float frequex) { // Set frequencia fixa no FM if (frequex < FREQ_LOW) { frequex = FREQ_HIGH; freq_now=FREQ_HIGH; } if (frequex > FREQ_HIGH) { frequex = FREQ_LOW; freq_now=FREQ_LOW; } frequency=frequex*1000000; //starting frequency 89.7 novafm frequencyB=(4*(frequency+225000))/32768; //valor decimal da pll frequencyH=frequencyB>>8; // desloca 8 bytes e pega entao o primeiro byte = 00110010 - decimal 50 frequencyL=frequencyB&0XFF; // pega o 2nd byte faz(AND) com 00000000 11111111 -> resultado 10000010 - dec 130 Soft_I2C_Start(); Soft_I2C_Write(0xC0); //endereço do chip FM - write mode Soft_I2C_Write(frequencyH); //byte1 Soft_I2C_Write(frequencyL); //byte2 Soft_I2C_Write(0xB0); //byte3 Soft_I2C_Write(0x10); //byte4 Soft_I2C_Write(0x00); //byte5 Soft_I2C_Stop(); grava_Freq(0x00); //grava 1o e 2o bytes com a frequencia sintonizada //0x00 e 0x01 sao os enderecos para gravacao da ultima estacao } void Le_Freq() //atualiza variaveis de frequ e variaveis de sinal, fm { Soft_I2C_Start(); Soft_I2C_Write(0xC1); buffer[0] = Soft_I2C_Read(1); buffer[1] = Soft_I2C_Read(1); buffer[2] = Soft_I2C_Read(1); buffer[3] = Soft_I2C_Read(1); buffer[4] = Soft_I2C_Read(1); Soft_I2C_Stop(); Delay_ms(50); freq_available=(((buffer[0]&0x3F)<>4; // valor numerico do nivel do sinal display_sinal(); // mostr anivel do sinal //flag de stereo - acende o led st_flag = buffer[2]>>7; if (st_flag ==0) {Lcd_Chr(1,15,' ');Lcd_Chr(1,16,' ');} else {Lcd_Chr(1,15,'F');Lcd_Chr(1,16,'m');} } void display_freq(float freqrep) { long int i; if (freqrep < FREQ_LOW) { freqrep = FREQ_HIGH; freq_now=FREQ_HIGH; } if (freqrep > FREQ_HIGH) { freqrep = FREQ_LOW; freq_now= FREQ_LOW; } i= (freqrep*1000000)-30000; //soma 50k para acertar arredondamento longToStr(i, txt); Lcd_Chr(1,5,txt[2]); Lcd_Chr(1,6,txt[3]); Lcd_Chr(1,7,txt[4]); Lcd_Chr(1,8,'.'); Lcd_Chr(1,9,txt[5]); Lcd_Out(1,10, "Mhz"); } void display_sinal() //imprime nivel do sinal graficamente { nivel_clear; if (niv=3 && niv4 && niv8 && niv12 ) {nivel_clear;Lcd_Chr(1,1,'o');Lcd_Chr(1,2,'o');Lcd_Chr(1,3,'o');Lcd_Chr(1,4,'o');} } void grava_Freq(int freq_addr) // Grava frequencia - enderecos da 877a 0x00 - 0xFF (256bytes) { EEPROM_Write(freq_addr, frequencyH); EEPROM_Write(freq_addr+1, frequencyL); } void recup_freq(int freq_addr, int sint_yn) //recupera frequencia DA MEMORIA e sintoniza a mesma // 1 = le bytes da eprom e sintoniza , 0 = apenas le os bytes da eprom { frequencyH= EEPROM_Read(freq_addr); frequencyL= EEPROM_Read(freq_addr+1); if (sint_yn== 1) { Soft_I2C_Start(); Soft_I2C_Write(0xC0); //endereço do chip FM - write mode Soft_I2C_Write(frequencyH); //byte1 Soft_I2C_Write(frequencyL); //byte2 Soft_I2C_Write(0xB0); //byte3 Soft_I2C_Write(0x10); //byte4 Soft_I2C_Write(0x00); //byte5 Soft_I2C_Stop(); } } void display_mem(short int mem_fm) { Lcd_Cmd(_LCD_CLEAR); Lcd_Chr(2,1,'M'); Lcd_Chr(2,2,'e'); Lcd_Chr(2,3,'m'); inttostr(mem_fm,txt); Lcd_Out(2, 8, txt); recup_freq(0x00+(mem_fm+1), 0); //memoria 1 if (frequencyL == 0xFF) //memoria sem estacao gravada { Lcd_Chr(1,5,'-'); Lcd_Chr(1,6,'-'); Lcd_Chr(1,7,'-'); Lcd_Chr(1,8,'.'); Lcd_Chr(1,9,'-'); Lcd_Out(1,10, "Mhz"); } else //memoria COM estacao gravada { freq_available=((frequencyH< 0xD0 I2C1_Wr(address); I2C1_Repeated_Start(); I2C1_Wr(0xd1); I2C1_Rd(0); I2C1_stop(); } void write_ds1307(unsigned short address,unsigned short w_data) { I2C1_Start(); // issue I2C start signal I2C1_Wr(0xD0); // send byte via I2C (device address + W) I2C1_Wr(address); // send byte (address of DS1307 location) I2C1_Wr(w_data); // send data (data to be written) I2C1_Stop(); // issue I2C stop signal } //manipulacao de tipos para o relogio unsigned char BCD2UpperCh(unsigned char bcd) { return ((bcd >> 4) + '0'); } //manipulacao de tipos para o relogio unsigned char BCD2LowerCh(unsigned char bcd) { return ((bcd & 0x0F) + '0'); } void alarme() { //Lcd_Cmd(_LCD_CLEAR); //Delay_ms(5000); a_hour= EEPROM_Read(0xAA); // posicoes de memoria para hora e minuto a_min= EEPROM_Read(0XAF); xalarme= EEPROM_Read(0XB2); if (a_hour == 0xFF) a_hour = 0; //se posicao de memoria vazia - zera variaveis if (a_min == 0xFF) a_min = 0; if (xalarme == 0xFF) xalarme = 0; Lcd_Cmd(_LCD_CLEAR); cnt2 = 0; while(cnt2 < 100) { cnt2++; inttostr(a_hour,ddate2); Lcd_Chr(1, 8, ddate2[4]); Lcd_Chr(1, 9, ddate2[5]); Lcd_Chr(1, 10, ':'); inttostr(a_min,ddate2); Lcd_Chr(1, 11, ddate2[4]); Lcd_Chr(1, 12, ddate2[5]); inttostr(xalarme,ddate2); Lcd_Chr(1, 1, 'A');Lcd_Chr(1, 2, 'l');Lcd_Chr(1, 3, ':'); Lcd_Chr(1, 5, ddate2[4]); Lcd_Chr(1, 6, ddate2[5]); if(BUTTON_DOWN) { cnt2=0; a_hour++; Delay_ms(150); if (a_hour > 23) a_hour = 0; inttostr(a_hour,ddate2); Lcd_Chr(1, 8, ddate2[4]); Lcd_Chr(1, 9, ddate2[5]); } if(BUTTON_UP) { cnt2=0; a_min++; Delay_ms(150); if (a_min > 60) a_min = 0; inttostr(a_min,ddate2); Lcd_Chr(1, 10, ddate2[4]); Lcd_Chr(1, 11, ddate2[5]); } if(BUTTON_SET2) { cnt2=0; xalarme++; Delay_ms(150); if (xalarme > 3) xalarme = 0; inttostr(xalarme,ddate2); Lcd_Chr(1, 1, 'A');Lcd_Chr(1, 2, 'l');Lcd_Chr(1, 3, ':'); Lcd_Chr(1, 5, ddate2[4]); Lcd_Chr(1, 6, ddate2[5]); } in_alarm =0; // rehabilita alarme EEPROM_Write(0xAA, a_hour); EEPROM_Write(0xAF, a_min); EEPROM_Write(0xB2, xalarme); } } //acerta relogio - grava novo valor void acerta_relogio (unsigned short xtipo) { unsigned short xlimite; unsigned short xchart; Lcd_Cmd(_LCD_CLEAR); xchart = 0; if (xtipo==2) {Lcd_Out(1, 1, "Hora:");xlimite=23;} if (xtipo==1) {Lcd_Out(1, 1, "Min:");xlimite=59;} if (xtipo==4) {Lcd_Out(1, 1, "Dia:");xlimite=31;} if (xtipo==5) {Lcd_Out(1, 1, "Mes:");xlimite=12;} if (xtipo==6) {Lcd_Out(1, 1, "Ano:");xlimite=20;} if (xtipo==3) {Lcd_Out(1, 1, "Semana:");xlimite=7;} for(;;) { inttostr(xchart,ddate2); Lcd_Chr(1, 10, ddate2[4]); Lcd_Chr(1, 11, ddate2[5]); //Lcd_Out(2, 1, ddate2); if(BUTTON_UP) // advance hour { VDelay_ms(150) ; xchart++; if (xchart>xlimite) xchart=0; } if(BUTTON_SET2) // valid { VDelay_ms(550) ; write_ds1307(xtipo,dec2bcd(xchart)); //write hour break ; // exit loop } } } void holdx() { while(BUTTON_SET1) //hold botão de SET1 - ajuste de hora { hold_bt++; if (hold_bt == 440) Lcd_Out(2, 1, "Alarme "); if (hold_bt == 800) Lcd_Out(2, 1, "Hora "); VDelay_ms(5); } } <pre> segue tambem o esquema anexado e desde já agradeço

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!