Tere.
Proovin kirjutada koodi, mis loeb EEPROM-ist andmed(adr.0x10), siis liidetakse 1 ja summa pannakse teise mälu aadressi(adr.0x02). Järgnevalt loetakse sellelt samalt aadressilt(adr.0x02) väärtus ja väljastatakse PORTi B.
Simuleerides koodi MPLAB SIM (MPLAB IDE v6.53)nimelise programmiga jääb asi pidama sinna, kus kirjutatakse andmed EEPROMi. Uut lugemist ei toimu ja porti andmeid ei jõua. Miks?
Ei saa aru, kas viga on koodis või simulaator ei näita seda.
Olen proovinud mitmeid varjante, kuid tulutult.
Ehk keegi seletaks, mis on valesti.
Tänan.
Protsessor on PIC16F84A.
EEPROM-i lugemiseks ja kirjutamiseks kasutan macrot, mille sain siit
http://www.mikroelektronika.co.yu/english/...k/6_chapter.htm
Program: EEPROM.INC
Lisaks kasutan macrot elay 10ms, mis on vajalik kirjutamis protsessil.
http://www.mikroelektronika.co.yu/english/...k/5_chapter.htm
Punkt 5.3.4 Generating pause in miliseconds (1~65535ms).
PORTB on out.
[CODE]
main eeread 0x10,W
movlw 0x01 ;W-sse 01h
movwf temp ;W loetakse tempi
addwf EEDATA,temp ;EEDATA(17)+temp(01)=W(18)
movwf temp ;W loetakse tempi
eewrite 0x02,temp ;temp kirjutatakse eepromi aadressisse 02
eeread 0x02,W ;loetakse aadressist 0x02
movf EEDATA,W ;EEDATA väärtus pannakse W-sse
movwf 06h ;W pannakse portB-sse
goto main
org 0x2100 ;eepromi algus
de .5 ;väärtused,mis kirjutatakse programmeerimisel
org 0x2110 ;eepromi
de .23
end
Proovin kirjutada koodi, mis loeb EEPROM-ist andmed(adr.0x10), siis liidetakse 1 ja summa pannakse teise mälu aadressi(adr.0x02). Järgnevalt loetakse sellelt samalt aadressilt(adr.0x02) väärtus ja väljastatakse PORTi B.
Simuleerides koodi MPLAB SIM (MPLAB IDE v6.53)nimelise programmiga jääb asi pidama sinna, kus kirjutatakse andmed EEPROMi. Uut lugemist ei toimu ja porti andmeid ei jõua. Miks?
Ei saa aru, kas viga on koodis või simulaator ei näita seda.
Olen proovinud mitmeid varjante, kuid tulutult.
Ehk keegi seletaks, mis on valesti.
Tänan.
Protsessor on PIC16F84A.
EEPROM-i lugemiseks ja kirjutamiseks kasutan macrot, mille sain siit
http://www.mikroelektronika.co.yu/english/...k/6_chapter.htm
Program: EEPROM.INC
Lisaks kasutan macrot elay 10ms, mis on vajalik kirjutamis protsessil.
http://www.mikroelektronika.co.yu/english/...k/5_chapter.htm
Punkt 5.3.4 Generating pause in miliseconds (1~65535ms).
PORTB on out.
[CODE]
main eeread 0x10,W
movlw 0x01 ;W-sse 01h
movwf temp ;W loetakse tempi
addwf EEDATA,temp ;EEDATA(17)+temp(01)=W(18)
movwf temp ;W loetakse tempi
eewrite 0x02,temp ;temp kirjutatakse eepromi aadressisse 02
eeread 0x02,W ;loetakse aadressist 0x02
movf EEDATA,W ;EEDATA väärtus pannakse W-sse
movwf 06h ;W pannakse portB-sse
goto main
org 0x2100 ;eepromi algus
de .5 ;väärtused,mis kirjutatakse programmeerimisel
org 0x2110 ;eepromi
de .23
end
Comment