XName Postat Mai 11, 2007 Autor Partajează Postat Mai 11, 2007 Am studiat un cod de afisare pt 2 digiti cu led. Si nu inteleg aceasta parte a codului: DisplayOut call LedTable ;Take a mask for a digit movwf LEDportB ;Set the mask for a digit ... RETURNLedTable addwf PCL,f retlw b'00111111' ;mask for digit 1 retlw b'00000110' ;mask for digit 2 retlw b'01011011' ;mask for digit 3 ... retlw b'00000000' ;no digitDupa cum stiu eu RETLW = Întoarcere dintr-un subprogram cu constantă în W dar aici in cod cand se apeleaza LedTable dupa mine este normal la urmatoare linie dupa addwf sa iasa inapoi in DisplayOutCe logica au celelalte retlw pe care niciodata nu va ajunge sa le execute?????? Link spre comentariu
CristianC Postat Mai 11, 2007 Partajează Postat Mai 11, 2007 PCL reprezinta program counter. Daca adaugi o valoare la el vei obtine un salt egal cu valoarea adaugataIn cazul tau: Daca wreg=0 executa urmatoarea instrDaca wreg=1 sare o instr.Daca wreg=2 sare 2 instr.Daca wreg=3 sare 3 instr.......... Link spre comentariu
cirip Postat Mai 11, 2007 Partajează Postat Mai 11, 2007 Aici gasesti explicata in detaliu tehnica de "table read" ptr picuri. Este echivalentul adresarii indexate de la procesoarele mai adevarate http://ww1.microchip.com/downloads/en/A ... 00556e.pdf Cirip Link spre comentariu
XName Postat Mai 11, 2007 Autor Partajează Postat Mai 11, 2007 Inca o dilema?Daca eu imi fac un macro MACRO_Xiar aceasta este secventa de codbtfsc variabila, 2MACRO_Xaddlw ...Ce se intampla in acest caz? daca bitul respectiv este 1 atunci va executa macro_x dar adaca acesta este 0 va sarii la addlw, sau doar o linie din macro? Link spre comentariu
Abram Burel Postat Mai 12, 2007 Partajează Postat Mai 12, 2007 Daca e 1 va executa incepand cu prima linie din macro, iar daca e 1 incepand cu a doua :)La generarea codului macroul e substituit cu secventa lui.Ca sa execute codul "macro" sau instructiunea urmatoare, macroul trebui transformat in rutina si aceasta apelata cu un call dupa btfsc. Link spre comentariu
XName Postat Mai 13, 2007 Autor Partajează Postat Mai 13, 2007 Daca programul meu ruleaza main si face niste instructiuni din bank1, iar in acel moment apare o intrerupere. Cand se va executa intrerupere in ce bank se va afla ?? Link spre comentariu
Abram Burel Postat Mai 13, 2007 Partajează Postat Mai 13, 2007 Tot acolo Ai doua variante: ori blochezi intreruperile pe perioada accesului la BANK1, ori ai grija sa salvez/restaurezii STATUS-ul cu bank cu tot. Probabil a doua varianta e "state of the art". Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum