Boa noite galera
Galera eu to querendo gravar o valor de uma variável na memoria eeprom do pic16f628a já ate consegui faze-lo mas não tenho riqueza em conhecimentos da função. Logo abaixo segue meu código.
Criei um programinha de exemplo para aprender a utilizar a função.
quantas vezes eu posso gravar esses dados na memoria?
A que se refere last volume? (em minhas pesquisas percebi que é o endereço da memória)
Qual o endereço adequado?
Acho que essas duvidas vão ajudar muita gente.
Exemplo CCS
#define LAST_VOLUME 10 // Location in EEPROMvolume++;write_eeprom(LAST_VOLUME,volume);#define LAST_VOLUME 10volume = read_EEPROM (LAST_VOLUME);
Programa exemplo
#include <16f628a.h>#FUSES NOWDT //No Watch Dog Timer#FUSES INTRC_IO //Internal RC Osc, no CLKOUT#FUSES PUT //Power Up Timer#FUSES PROTECT //Code protected from reads#FUSES NOBROWNOUT //No brownout reset#FUSES NOMCLR //Master Clear pin used for I/O#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O#FUSES CPD //Data EEPROM Code Protected#use delay(clock=4000000)#define liga output_high#define desliga output_low#define led pin_b3#define button pin_a1#define set pin_a2int soma = 1;void main(){soma = read_EEPROM (0);while (true){ if (!input(set)) { soma++; do{} while (!input(set)); } if (soma>3) { soma=1; } if (!input(button)) { if (soma==1) { liga(led); delay_ms(100); desliga(led); } else if (soma==2) { liga(led); delay_ms(100); desliga(led); delay_ms(100); liga(led); delay_ms(100); desliga(led); } else if (soma==3) { liga(led); delay_ms(100); desliga(led); delay_ms(100); liga(led); delay_ms(100); desliga(led); delay_ms(100); liga(led); delay_ms(100); desliga(led); } } write_eeprom(0,soma); }}
Agradeço a todos!