HI-TECH C nybörjare

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Johaa
Inlägg: 7
Blev medlem: 1 augusti 2007, 12:56:34
Ort: Sundsvall

Re: HI-TECH C nybörjare

Inlägg 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.
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Re: HI-TECH C nybörjare

Inlägg 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.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: HI-TECH C nybörjare

Inlägg 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..
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Re: HI-TECH C nybörjare

Inlägg 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.
Johaa
Inlägg: 7
Blev medlem: 1 augusti 2007, 12:56:34
Ort: Sundsvall

Re: HI-TECH C nybörjare

Inlägg 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.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: HI-TECH C nybörjare

Inlägg 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...
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Re: HI-TECH C nybörjare

Inlägg av vfr »

Lysande!

Var det bara flytten till en annan port som fick det att funka?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: HI-TECH C nybörjare

Inlägg av sodjan »

> Var det bara flytten till en annan port...

Det var samma port... 8)
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Re: HI-TECH C nybörjare

Inlägg av vfr »

Fel uttryckt. Ska vara "annan portpinne" eller "annan ingång" om man så vill.
Johaa
Inlägg: 7
Blev medlem: 1 augusti 2007, 12:56:34
Ort: Sundsvall

Re: HI-TECH C nybörjare

Inlägg 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 :)
Skriv svar