Sida 1 av 1

MikroC Pro for PIC, LPC Demo Board - knappfunktion

Postat: 16 oktober 2016, 01:44:42
av Magnus_K
Hej,

Satt här ikväll och skulle göra ett litet snabblabb. För att bekräfta vissa funktioner så började jag med att "få igång knappen", och pungspark direkt.
Använder MikroC Pro for PIC och LPC Demo-kortet som kom med PICKit2:an. Det är också med denna jag programmerar och matar kortet med.

Programmet ser ut som nedan:

Kod: Markera allt

#define P_BUTTON PORTA.B3
#define POT PORTA.B0
#define LED_1 PORTC.B0

void init() {

     OSCCON = 0b01110000;

     PORTA = 0;
     PORTB = 0;
     PORTC = 0;
     TRISA = 0b00001001;
     TRISB = 0;
     TRISC = 0;
     
     CM1CON0 = 0;
     CM2CON0 = 0;
     
     ADCON0 = 0;
     ANSEL = 0;
     ANSELH = 0;
}

void main() {

     init();
     
     while(1) {
     
              LED_1 = P_BUTTON;              
     }
}
Det är alltså inte märkvärdigare än att när knappen (RA3) går hög så tänds LED_1 (RC0).
Ger jag värdet "1" till LED_1 så tänds den.
Ställer jag också om till tex RA1 och använder en kabel som ställer ingången hög så tänds LED:en. Problemet ligger alltså i RA3.

Efter en del googlande så kan det vara så att det hänger ihop med att RA3 också är /MCLR och används vid programmeringen. Tydligen finns det också någon inställning i MPLAB där man säkerställer att RA3 återställs till tri-state, men hur kommer man runt det här om jag inte använder MPLAB? Om det är det som är problemet.

EDIT: Har även mätt på RA3, och knappen verkar helt ok. Hög nivå är 4,9V och låg är 0,2V.
EDIT2: Läste även nedan i PICkit2:ans manual nu... Men vad är det man ställer in egentligen? Kan man inte göra det på något annat sätt än "genom IDE:t"???

LPC.JPG

Re: MikroC Pro for PIC, LPC Demo Board - knappfunktion

Postat: 16 oktober 2016, 09:22:55
av Icecap
För att använda -MCLR som input-port måste du välja det i CONFIG.

Det brukar dock ställa till det ganska rejält med programmeringen så om du inte är piskat till det vill jag föreslå en mindre mod. av kretskortet.

Re: MikroC Pro for PIC, LPC Demo Board - knappfunktion

Postat: 16 oktober 2016, 10:39:21
av sodjan
Notera att demo koden i "user guide" för LPC kortet använder _MCLRE_OFF.

Kod: Markera allt

; PICkit 2 Lesson 1 - 'Hello World'
;
#include <p16F690.inc>
__config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF &
_MCLRE_OFF & _CP_OFF & _BOD_OFF & _IESO_OFF & _FCMEN_OFF)
org 0
Start
...
...
Om det inte är ett direkt fel i exemplet så betyder det att PICkit2 måste
kunna programmera om även med MCLR bortkopplad (RA3 som en in-pinne).

Annars fungerar ju SW1 knappen enbart som en reset-knapp...

Re: MikroC Pro for PIC, LPC Demo Board - knappfunktion

Postat: 16 oktober 2016, 12:18:03
av Magnus_K
@Icecap:
Jag var inne på exakt samma sak igår. Snitta upp ledningsbanan och styra in den på någon annan ingång.
Tydligen har dom gjort om designen av den senaste revisionen av LPC-kortet så knappen går till RA4 (om jag inte minns fel).

@sodjan & Icecap:
Ja det var som fasen. Slog av den biten i CONFIG-registret och programmeringen samt knappen fungerar nu utmärkt.
Får komma ihåg att göra det här varje gång jag meckar med LPC-kortet.

Tackar för hjälpen :tumupp:

Re: MikroC Pro for PIC, LPC Demo Board - knappfunktion

Postat: 16 oktober 2016, 12:21:31
av sodjan
OK. Och du kunde programmera om mer än *en* gång?
Första gången går ju alltid bra, då är MCLR fortfarande "på".
Men nästa gång är MCLR "av" och då krävs det lite extra... :-)

Re: MikroC Pro for PIC, LPC Demo Board - knappfunktion

Postat: 16 oktober 2016, 17:50:14
av Magnus_K
Jodå, fick köra en andra runda för att invertera knappen i koden så nog fungerar det.

EDIT: Har nu programmerat den ytterligare 20+ ggr och knappen/programmeringen fungerar klockrent. Tack än en gång!