Greška je ovde:
Code:
Pri movlw BROJAC ;Iz BROJACa u W
Ovo je ekvivalentno movlw b'00001101' budući da je BROJAC equ 0x0D. Pomešali ste instrukcije.
Onda se ta vrednost b'00001101' šalje na PORTA u sledećoj instrukciji.
Budući da niste definisali kako ste povezali LED (od pinova ka GND ili od pinova ka +5V) ne mogu dati objašnjenje zasto svetli samo LED na RA0.
Nakon interapta, ponovo se uzima ista vrednost, koja se nikada ni ne može promeniti, i ponovo šalje na PORTA, I opet, i opet...
Umesto:
Code:
Pri movlw BROJAC ;Iz BROJACa u W
stavite
Code:
Pri movf BROJAC,W
ili
Code:
Pri comf BROJAC,W
u zavisnosti od povezivanja LED.
Ovaj deo mi je nejasan!
bsf OPTION_REG,INTEDG ;Interapt pri rastucoj ivici signala
bcf OPTION_REG,NOT_RBPU ;Ukljuceni interni pull up otpornici na PORTB
Ukoliko su uključeni pull-up otpornici, zbog čega ste stavili da se interapt izaziva pri rastućoj ivici? Pretpostavljam da imate prekidač povezan od RB0 ka masi (GND). U tom slučaju, program će raditi, samo će se interapt izazivati prilikom otpuštanja, a ne prilikom pritiska prekidača.
Ukoliko ste stavili prekidač od pina ka +5V, interapti se neće ni izazivati, jer je na pinu neprekidno visoko logičko stanje izazvano uključenim pull-up otpornikom. Kada je prekidač pritisnut napon +5V će na RB0 dolaziti preko njega, a kada je otpušten preko (uključenog) pull-up otpornika. Budući da nikako nema potrebne tranzicije (sa GND na +5V) nema ni interapta.
@foxhunter1
Nije problem u snimanju STATUS registra, već se navedenim primerom želelo pokazati (i dokazati) da ponekad nema potrebe snimati STATUS registar. Razlog je jednostavan. STATUS registar se u glavnom programu ne koristi. Jedino u interaptu. Štaviše, budući da se W ne koristi nigde u interaptu, jedino u glavnom programu, čak se i njegovo snimanje moglo izostaviti, bar za ovaj konkretan (početnički) primer.
Naravno da će se pri svakom komplikovanijem programu i W i STATUS morati snimati (kod 16F84 nema potrebe za snimanjem FSR, ali kod 628 već ima), ali ovde to nije slučaj. Snimanje STATUS registra detaljnije je objašnjeno u narednim poglavljima uputstva koga čita Marko1991.