puiu Postat Mai 22, 2010 Partajează Postat Mai 22, 2010 In corpul functiei intrerupere nu se initializeaza timere...(asa stiu eu din exemplele studiate)Acest lucru este fals. In corpul functiei intrerupere se poate face orice lucru, inclusiv stergerea flagurilor care au provocat intreruperea(asta ca sa raspund si lui Liviu), care este obligatorie daca este prevazuta in documentatie deoarece la iesire din functia de intrerupere se testeaza din nou flagurile si atunci daca nu este sters se reia functia de intrerupere. Link spre comentariu
wwwglro Postat Mai 22, 2010 Autor Partajează Postat Mai 22, 2010 Ma refeream la intreruperile interne tip "rollover"...(cel putin asa am vazut in exemplele studiate) Link spre comentariu
Liviu M Postat Mai 22, 2010 Partajează Postat Mai 22, 2010 Eu stiu ca in ccs registrul rtcc se incarca in mainIn cod incarci rtcc o singura data, la intrarea in main, si gata. Esti sigur ca css adaga codul necesar initializarii permanente? Ca daca nu, timerul numara incepand cu valoarea scrisa de tine pana ajunge la 255; cand primeste un nou clock, o ia de la 0 si numara iarasi pana la 255, dupa care o ia de la zero... adica numara de fiecare data de 255 de ori. Tinand cont ca la tine diferenta nu e prea mare, sunt sanse sa nu te prinzi ca ai alti timpi decat cei doriti. Ma rog, era o parere. Daca esti sigur ca faci bine, lasa-l cum e. @puiu: eu am sters de fiecare data flagurile si n-am fost sigur daca chiar trebuie sau nu; cum am inteles ca programul de fata merge, am presupus ca nu trebuie, asa ca i-am recomandat operatiunea respectiva ca "good practice". Link spre comentariu
puiu Postat Mai 23, 2010 Partajează Postat Mai 23, 2010 1.Este vorba de biti din PIRx care trebuie (must be cleared in software).2. Poti sa incerci sa nu-i pui pe zero acesti biti si sa vezi cu ajutorul simulatorului ce se intampla. Rutina de intrerupere se va rula la nesfarsit.3. Deci va trebui si pentru o singur tip de intrerupere va trebui sa pui pe zero acea intrerupere.4. Eu lucrez in ASM si nu am auzit de intreruperi interne de tip rollover in care nu poti sa initializezi registri. Ar trebui sa ne dai un exemplu (sau este vorba tot de ccs ?) Link spre comentariu
wwwglro Postat Mai 23, 2010 Autor Partajează Postat Mai 23, 2010 1.Este vorba de biti din PIRx care trebuie (must be cleared in software)....pentru timer1 cred...pentru timer0 nu stiu daca este valabil... Link spre comentariu
puiu Postat Mai 23, 2010 Partajează Postat Mai 23, 2010 1. Ai dreptate ca pentru TMR0 bitul respectiv este in registrul special INTCON dar cu aceasi observatie (must be cleared in software). De regula intreruperile se selecteaza cu biti XXIE si se trateaza cu biti XXIF (must be cleared in software). Nu am sa fac toata istoria aici, (a intreruperilor). Pentru cine doreste poate data shetul acestui PIC sa ii raspunda. Il gaseste la http://ww1.microchip.com/downloads/en/D ... 41190G.pdf. 2. Deci si pentru TMR0 este la fel ca pentru TMR1 din punct de vedere al intreruperilor si este la fel pentru toate intreruperile din aceasi familie de PIC-uri. 3. Avand in vedere ca nu sunt vorbitor de limba engleza astep un exemplu de intrerupere interna de tip "rollover". Cum este tradus acest termen? Link spre comentariu
wwwglro Postat Mai 23, 2010 Autor Partajează Postat Mai 23, 2010 Daca ar putea cineva sa faca programul in asamblare, as putea testa hexul in proteus sa vad cum functioneaza... Link spre comentariu
puiu Postat Mai 23, 2010 Partajează Postat Mai 23, 2010 1. Daca iti face programul in ASM de ce sa il testezi in Proteus, cand poate sa-l simuleze cu MPLAB? Link spre comentariu
wwwglro Postat Mai 23, 2010 Autor Partajează Postat Mai 23, 2010 Pai nu am alta unealta de diagnosticare... Link spre comentariu
puiu Postat Mai 23, 2010 Partajează Postat Mai 23, 2010 1. MPLAM este gratis pe site-ul lui MICROCHIP. Link spre comentariu
wwwglro Postat Mai 23, 2010 Autor Partajează Postat Mai 23, 2010 Nu prea m-as apuca de invatat altceva... Link spre comentariu
puiu Postat Mai 23, 2010 Partajează Postat Mai 23, 2010 1. Esti sigur ca simularea din Proteus este exacta?2. Eu doar ti-am sugerat ca sa lucrezi cu simulatorul dat de costructor, in care poti sa simulezi inclusiv ce ai in diversi registri. De fapt tu vrei un program care sa merga bine in Proteus, nu conteaza cum va merge in PIC? Link spre comentariu
wwwglro Postat Mai 23, 2010 Autor Partajează Postat Mai 23, 2010 Pot sa simulez un hex generat de alt compilator? Link spre comentariu
puiu Postat Mai 23, 2010 Partajează Postat Mai 23, 2010 1. Nu stiu, dar poti sa incerci.!! Link spre comentariu
Liviu M Postat Mai 23, 2010 Partajează Postat Mai 23, 2010 Desi pentru simularea functionarii PIC-ului MPLAB e ok, Proteus are avantajul ca-ti poate simula un sistem complet. Din cate stiu eu, sunt unii stimuli care nu se pot genera in MPLAB (sau se pot genera foarte greu) - de exemplu intrarile analoge. @wwwglro: daca ai ccs-ul instalat si vrei sa testezi un al doilea simulator, poti sa-ti instalezi mplab, sa-l configurezi sa foloseasca compilatorul ccs pentru proiectul respectiv, sa-i spui unde sunt executabilele de la ccs si mai departe poti edita, compila si simula direct din mplab. Cel putin asa cred, ca eu folosesc picc de la Hi-Tech. , da' am vazut si ccs printre compilatoarele suportate de mplab. 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