Vizitator vvmm Postat Iunie 12, 2011 Partajează Postat Iunie 12, 2011 Bună ziua! Sunt începător în lumea microcipurilor PIC. Folosesc un cip PIC16F690 conectat la un led si un buton. Vreau sa fac pentru început când apăs pe buton să se aprindă led-ul și când eliberez să se stingă. Programul funcționează dacă ledul și butonul sunt legate la portul B. Pe portul A sau C nu funcționează. De ce? Cod: #include <p16f690.inc>__config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF) org 0Init: BSF STATUS,RP0 MOVLW b'01111111' MOVWF TRISC BCF STATUS,RP0 Main: btfss PORTC,6 bcf PORTC,7 btfsc PORTC,6 bsf PORTC,7 goto Main end Link spre comentariu
Liviu M Postat Iunie 12, 2011 Partajează Postat Iunie 12, 2011 Incearca sa dezactivezi partea analogica a pinilor pe care vrei sa-i folosesti. De exemplu pentru PORTA scrie in data-sheet: Note: The ANSEL register must be initialized toconfigure an analog channel as a digitalinput. Pins configured as analog inputs willread ‘0’. Link spre comentariu
Eugen_B Postat Iunie 12, 2011 Partajează Postat Iunie 12, 2011 Pentru Port A , primi 4 biti (0-3)din ANSEL trebuie pusi pe 0, iar pentru Port C urmatorii biti din ANSEL (4-7) plus primi 2 biti (0-1) din ANSELH. (vezi datasheet, la sfarsitul fiecarei sectiuni dedicate fiecarui port , e un tabel cu registii care interactioneaza cu portul respectiv , pag. 68, respectiv 80 din datasheet) Link spre comentariu
Vizitator vvmm Postat Iunie 13, 2011 Partajează Postat Iunie 13, 2011 Mulțumesc pentru răspunsuri! Da, ANSEL era problema. Credeam că implicit e dezactivat. 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