Sida 2 av 2

Re: HI-TECH C nybörjare

Postat: 1 augusti 2009, 12:28:03
av Johaa
Jag har lagt till: under init()

Kod: Markera allt

PORTC = 0b00001001;
delay_ms(1000);
Nu har jag utesluta att processorn startas om.
Men hur stänger man av mclr, är mclr samma som mclren??
Jag har provat tagit bort mclr och då blev det ingen skillnad.
Jag har provat lagt till mclr=0 och då tändes inga led alls.

Re: HI-TECH C nybörjare

Postat: 1 augusti 2009, 13:49:41
av vfr
Men hur stänger man av mclr, är mclr samma som mclren??
Jag har provat tagit bort mclr och då blev det ingen skillnad.
Jag har provat lagt till mclr=0 och då tändes inga led alls.


Stänger av MCLR gör man i configbitarna. Läs på om configbitarna i databladet så klarnar det nog. Man kan sätta configbitarna i programmeringsmiljön, men det bästa är att göra det i koden. Då är det ingen risk att man tappar bort det.

Sedan är det en liten brasklapp med deaktiverad MCLR. För att få en PIC i programmeringsläge, så måste programmeringsspänning och reset komma i en viss ordning. Det är svårare när MCLR är avstängd. Alla programmerare har inte stöd för det. Om jag inte minns fel så var det PICKIT du körde, och den har jag aldrig använt. Men jag tycker det vore konstigt om den inte hade stöd för det.

Edit: Ja, det borde vara MCLREN enligt ettt av dina tidigare inlägg.

Re: HI-TECH C nybörjare

Postat: 1 augusti 2009, 13:55:40
av sodjan
Strunta i MCLR, använd en annan pinne för knappen istället.
Varför envisas med att använda RA3 som ingång för knappen ?
Är det någon begränsning på PICkit2's labbkort ?

Sen...

> Jag har provat tagit bort mclr och då blev det ingen skillnad.
> Jag har provat lagt till mclr=0 och då tändes inga led alls.

Jag såg de där frågorna, men struntade i det. Det var aldeles för rörigt och
det ligger i ditt intresse att skriva inlägg/frågor som är tydliga och som
går att svara vettigt på. Det är en ganska dålig idé att försöka *beskriva*
koden istället för att faktiskt *visa* den..

Re: HI-TECH C nybörjare

Postat: 1 augusti 2009, 17:23:47
av vfr
Low Pin Count Demo Board som följer med PICKIT2 verkar bara ha en knapp, om jag fattat det rätt. Den är då kopplad till RA3. Det är ju bra om man vill ha den som reset, men lite bökigt om man vill ha den bara som ingång. Å andra sidan är det inget som hindrar att man sätter på en egen knapp kopplad till en annan ingång. Det är förmodligen en bra idé. Att hålla på att böka med att disabla MCLR är egentligen onödigt. Precis som Sodjan säger.

Re: HI-TECH C nybörjare

Postat: 1 augusti 2009, 21:23:35
av Johaa
OMG allt funkar som det ska :D :D
Jag satt dit en till switch på RA1 som ni sa.
Här är min test kod:

Kod: Markera allt

#include <htc.h>
__CONFIG(INTIO & WDTDIS & PWRTEN & MCLREN & UNPROTECT & UNPROTECT & BORDIS & IESODIS & FCMDIS);
#define FOSC 8000000L
#define	delay_us(x) { unsigned char us; us = (x)/(12000000/FOSC)|1; while(--us != 0) continue; }
void delay_ms(unsigned int ms){unsigned char i;do {i = 4;do {delay_us(164);} while(--i);} while(--ms);}int tRA3=1;
void init(void) {
// OSCILLATOR
  OSCCON=0x70;         // Select 8 Mhz internal clock
// UNUSED FEATURE DISABLE
  ADON=0;
  ANSEL = 0;
  ANSELH = 0;
// PORT I/O STATES
  TRISC = 0b00000000;
  TRISA = 0b00000010;
}
//---------------------------------------------------------------------------------------
void main(void) {
init();
PORTC = 0b00001001;
delay_ms(1000);
for(;;) {
  if(RA1 == 1) {
  PORTC = 0b00001000;
  delay_ms(200);
  PORTC = 0b00000100;
  delay_ms(200);
  PORTC = 0b00000010;
  delay_ms(200);
  PORTC = 0b00000001;
  delay_ms(200);
}else {
  PORTC=0b00001111;
  delay_ms(200);          // Call Delay function
  PORTC=0b00000000;
  delay_ms(200);          // Call Delay function
  } // end else
 } // end loop
} // end main
Tack alla som hjälpt mig.

Re: HI-TECH C nybörjare

Postat: 1 augusti 2009, 23:21:15
av sodjan
> OMG allt funkar som det ska

Och du vet *varför* det fungerar nu men inte innan ?
Det är viktigare än att det faktiskt fungerar...

Re: HI-TECH C nybörjare

Postat: 1 augusti 2009, 23:26:13
av vfr
Lysande!

Var det bara flytten till en annan port som fick det att funka?

Re: HI-TECH C nybörjare

Postat: 1 augusti 2009, 23:29:46
av sodjan
> Var det bara flytten till en annan port...

Det var samma port... 8)

Re: HI-TECH C nybörjare

Postat: 1 augusti 2009, 23:33:00
av vfr
Fel uttryckt. Ska vara "annan portpinne" eller "annan ingång" om man så vill.

Re: HI-TECH C nybörjare

Postat: 2 augusti 2009, 00:05:37
av Johaa
Ja det var bara och byta portpinne.
Ska bara använda RA3 till restart och resten av pinnana till något roligt sen i framtiden :)