Gebruik van eeprom voor pic18f452 in C

P

piscaroy

Guest
hi hi, I need some help hier .. im nieuw in de C taal en ik nodig voor het gebruik van de EEPROM-geheugen voor het opslaan van gegevens in mijn pic18f452 ..
but i cant achterhalen hoe te schrijven

<img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Huilen of zeer triest" border="0" />

.. kan iemand mij leiden of stuur mi monsters codes op eeprom actief in C voor PIC 18 .. i really need help hier ASAP .. thankx veelRoy/ edit1: hmmm im met behulp van C18-compiler voor mijn pic18
Laatst gewijzigd door piscaroy op 13 augustus 2004 6:14; bewerkt 1 keer in totaal

 
Je vergat te vermelden compiler die u gebruikt.

De meeste samenstellers hebben predifined macro's of bibliotheek gunctions om toegang te krijgen tot de EEPROM in uw PIC.

met vriendelijke groet

 
Dit is een functie voor PIC 18F8720, is de nieuwste versie van de microchip.
Ik ben al heel goed.
Als je programma is simpel, ik denk dat je moet knippen while (1)
een verklaring in ghi_byte functie (gelijk EE_Write ()-functie)
Als zelfs verwarring te sturen naar mij pmnam2002@yahoo.com

statische BYTE ghi_byte (WORD addr, BYTE Prijs)
(
unie WORDBYTE EEhighlow;
BYTE ee_err = 0;
BYTE redata;

while (1) (
PIR2bits.EEIF = 0; / / Xóa c?ng? t
EEhighlow.two = addr;
EEADRH = EEhighlow.one [1];
EEADR = EEhighlow.one [0];
EEDATA = Value;
EECON1bits.EEPGD = 0; / / Toegang EEROM
EECON1bits.CFGS = 0; / / Toegang Flash & EEROM
EECON1bits.WREN = 1; / / Schrijf inschakelen
INTCONbits.GIE = 0; / / Disable Interrupt
EECON2 = 0x55;
EECON2 = 0xAA;
EECON1bits.WR = 1;
INTCONbits.GIE = 1; / / Interrupt Enable
while (PIR2bits.EEIF == 0) (/ / Chua viet xong -> cho
syspulse ();
)
PIR2bits.EEIF = 0; / / Xóa c?ng? t
EECON1bits.WREN = 0; / / Schrijf Uitschakelen

if (EECON1bits.WRERR == 0) (
redata = doc_byte (addr);
Nop ();
if (redata == Value)
return (0);
)
ee_err / / Error
EECON1bits.WRERR = 0; / / Reset cho l? N vi? T sau
if (ee_err> 2)
return (1); / / Bao l? i KHI ghi qua 2 l? n
)
)

statische BYTE doc_byte (WORD addr)
(
BYTE TempValre;

unie WORDBYTE EEhighlow;
EEhighlow.two = addr;
EEADRH = EEhighlow.one [1];
EEADR = EEhighlow.one [0];

EECON1bits.EEPGD = 0; / / Toegang EEROM
EECON1bits.RD = 1; / / Lees inschakelen
TempValre = EEDATA;
return (TempValre);
)

 

Welcome to EDABoard.com

Sponsor

Back
Top