void main(void) { clock_int_48MHz(); habilita_interrupcao(recep_serial); taxa_serial(9600); habilita_canal_AD(AN0); iniws(); //habilita_wdt(); while(1) { //ClrWdt(); if (flagsw==1) {flagsw=0;tempo_ms(500); ADvalue=le_AD10bits(0); tempo_ms(500); for(i=0;pg[i]!=0;i++) {smid[i]=pg[i];sputc(smid[i]);} for(i=0;pg1[i]!=0;i++) {smid[i]=pg1[i];sputc(smid[i]);} for(i=0;rede[i]!='\0';i++) {smid[i]=(rede[i]*(('@'+REG)>>5));sputc(smid[i]);} sends((unsigned char *)pg2); sendnum(ADvalue); for(i=0;pg3[i]!=0;i++) {smid[i]=pg3[i];sputc(smid[i]);} for(i=0;pg4[i]!=0;i++) {smid[i]=pg4[i];sputc(smid[i]);} tempo_ms(500); } }
void main(void) { clock_int_4MHz(); habilita_canal_AD(AN0); lcd_ini(); //Lcd_Cmd(LCD_CLEAR); Lcd_Cmd(LCD_CURSOR_OFF); tempo_ms(100); CGRAM_SanUSB(1,sino);//CGRAM_build(monta posicao do caractere especial,vetor do desenho); tempo_ms(300); Lcd_Chr(1, 2, 1); //Lcd_Chr(linha, coluna, posicao do caractere especial); tempo_ms(500); lcd_escreve(1, 3, "Microcontrol"); tempo_ms(500); lcd_escreve(2, 1, "Converte"); tempo_ms(500); while(1) { i= le_AD10bits(0); inverte_saida(pin_b7);inverte_saida(pin_d7); sprintf(buffer1,"%d ",i); lcd_escreve2(2, 12, buffer1); //com buffer tempo_ms(300); //printf("a "); } }
void main(){ clock_int_48MHz(); habilita_interrupcao(recep_serial); taxa_serial(9600); habilita_canal_AD(AN0_a_AN1); bt_ini(); T0CON =0B11000001; //TMR0ON, 8 bits, Prescaler 1:4 (001 - see datasheet) TMR0L = 16; //conta 240us antes de estourar x 4 (prescaler) RCONbits.IPEN = 1; //apenas interrupções de alta prioridade INTCONbits.GIEH = 1; //Habilita interrupções de alta prioridade INTCONbits.TMR0IE = 1;//Habilita interupção timer 0 while(1){ if (entrada_pin_e3==0){Reset();} //com interrupcao evitar no while, pois pode dar conflito com a gravacao if (envia){ inverte_saida(pin_b7);tempo_ms (500); sendrw((char *)"https://docs.google.com/forms/d/1PZOqjnitER0m03Ix4r9gDBqhp7Xs1YrPmjLymE2VWAU/formResponse?ifq&entry.962023089="); sendnum(le_AD10bits(0)); sendrw((char *)"&entry.1468266733="); temperatura=(420*le_AD10bits(1))/1023; sendnum(temperatura); sendrw((char *)"&entry.1609904957="); sendnum(41); sendrw((char *)"&entry.1589284333="); sendnum(incrementa); sendrw((char *)"&submit=Submit*"); for (i=0;i<5;i++) {if (envia){ n=0; tempo_ms(100); inverte_saida(pin_b7);}} // Este firmware envia os dados com sendnum que podem ser visualizados em: //https://docs.google.com/spreadsheets/d/1tDX1NalMiKmKVawsHfS7hpAf7lB5ZeHpYu0nLmau-TE/edit#gid=1687639411 envia=0; } ++incrementa; n=0; tempo_ms(300); } }
void main() { clock_int_4MHz(); //Função necessari para o dual clock taxa_serial(9600); habilita_canal_AD(AN0); while (1) { for (i = 0; i < 100; i = i + 5) { SetaPWM1(10000, i); SetaPWM2(10000, i); //frequência em Hz resultado = le_AD10bits(0); //Lê canal 0 da entrada analógica com resolução de 10 bits (ADRES) Vresult = (resultado * 5000) / 1023; //printf("Tensao Result= %lu mV\r\n", Vresult); //evitar o printf o uso do printf e imprimir com sendsw e sendnum sendsw((char *) Tensao); sendnum(Vresult); sendsw((char *) Rn); inverte_saida(pin_b7); tempo_ms(500); } for (i = 100; i > 0; i = i - 5) { SetaPWM1(1200, i); SetaPWM2(1200, i); resultado = le_AD10bits(0); //Lê canal 0 da entrada analógica com resolução de 10 bits (ADRES) //printf("Valor AD= %lu\r\n", resultado); //evitar o printf o uso do printf e imprimir com sendsw e sendnum sendsw((char *) TextoAD); sendnum(resultado); sendsw((char *) Rn); inverte_saida(pin_b7); tempo_ms(500); } } }
void main(){ clock_int_48MHz(); habilita_interrupcao(recep_serial); habilita_canal_AD(AN0); taxa_serial(9600); i2c_ini(); while(1){ if (flagA4){ flagA4=0; //Comandos A4 para Configurar o RTC escreve_rtc(endereco, dec_para_bcd(numquant)); //Escrever em BCD no RTC send_hex(le_rtc(hora)); swputc (':'); //Envia resultado via serial por bluetooth ou qualquer outro modem. send_hex(le_rtc(min)); swputc (':'); //Exemplo de resposta: 18:49:37 19/04/14 send_hex(le_rtc(seg)); swputc (' '); send_hex(le_rtc(dia)); swputc ('/'); send_hex(le_rtc(mes)); swputc ('/'); send_hex(le_rtc(ano)); swputc(' '); } if (flagA5){ flagA5=0; //BCD em hexadecimal representa o decimal send_hex(le_rtc(hora)); swputc (':'); send_hex(le_rtc(min)); swputc (':'); send_hex(le_rtc(seg)); swputc (' '); send_hex(le_rtc(dia)); swputc ('/'); send_hex(le_rtc(mes)); swputc ('/'); send_hex(le_rtc(ano)); swputc(' '); } resultado = le_AD10bits(0); tensao_lida16 = (resultado * 5000)/1023; //Valor até 16 bits (2 bytes) sendnum(tensao_lida16); swputc(' '); /*************************************************************************** conv_dec_2bytes(tensao_lida16); posicao=2*endereco16; //endereço é o ponteiro de 16 bits (byte 1 e byte 2) escreve_ieeprom( posicao, byte2); //Byte mais significativo do int16 escreve_ieeprom( posicao+1, byte1 ); //byte menos significativo do int16 ++endereco16; if (endereco16>=150){endereco16=0;} //Buffer de 300 bytes posicao<300 //***************************************************************************/ if(entrada_pin_e3==0){ send_hex(le_eeprom(5)); swputc(' '); /***************LEITURA DO BUFFER DA EEPROM EXTERNA I2C******************** for(i=0; i<10; ++i) { //150 Valores de 16 bits ou 300 de 8 bits. for(j=0; j<15; ++j) { valorgravado= 256*le_ieeprom((i*30)+2*j) + le_ieeprom((i*30)+2*j+1); sendnum(valorgravado); swputc(' '); } sendrw((rom char *)"\n\r"); } sendrw((rom char *)"\n\r"); //***************************************************************************/ } ++i; if(i>255) {i=0;} escreve_eeprom(5, i); inverte_saida(pin_b7); tempo_ms(1000); } }
unsigned int ANALOGIC_READ(unsigned int pin) { return le_AD10bits(pin); }