Guri escreveu:o mikroc pro pic,
.
Está contaminando o forum st
Penso que nem precisar zerar nada. A não ser que o sistema exija isso MESMO. Caminho do meio, vc pode zerar apenas aquelas que realmente precisa, algo como
unsigned char buffer[1024];
//...
for (i=0;i<1024;i++) buffer[i]=0;
Veja nos #includes do seu compilador como ele trata a ram. Algo como
static PORTA @0xAAAA
pra vc ter um referência de onde estão as coisas
Mas caso não deseje portar pra um mc de verdade, cogite fazer em asm mesmo.
Sobre ponteiros, me fez lembrar que certa feita o amigo @xults criou um algoritimo surreal. Baseando nele, fiz esta função pra gravar o valor de uma variável float na eeprom. Se ele achar que deve, deve participar
- Código: Selecionar todos
float float0;
float *ponteiro;
ponteiro = &float0;
float0=3.141592;
//grava os pedaços na eeprom
eepw(0,*((unsigned char *)(ponteiro)+0));
eepw(1,*((unsigned char *)(ponteiro)+1));
eepw(2,*((unsigned char *)(ponteiro)+2));
eepw(3,*((unsigned char *)(ponteiro)+3));
float0=0; //destroi só pra teste
//reconstroi float0 a partir dos pedaços da eeprom
*((unsigned char *)ponteiro + 0)=eepr(0);
*((unsigned char *)(ponteiro)+1)=eepr(1);
*((unsigned char *)(ponteiro)+2)=eepr(2);
*((unsigned char *)(ponteiro)+3)=eepr(3);
pi=float0; //taí
Nem pense em entender e pense ainda menos em me pedir pra explicar. Só sei que me lembro vagamente que deu certo. Se algum dia entender, queira fazer a gentileza de me explicar com riqueza de detalhes e se puder, com desenhos, videos preferencialmente em 3d
Ah e fiz também com outras ainda sinistras entidades struct e union. Esta menos difícil de entender mas está fora do escopo do tópico.