Sida 2 av 2

Re: IR Reciever till pickit2/16F690

Postat: 15 maj 2009, 09:58:43
av vfr
Normalt sett så "väljer" du inte det specifikt. Du sätter utgången till hög eller låg, vilket som du behöver för stunden. Det finns egentligen bara hög & låg på generella portar, inte aktiv & inaktiv. Sedan kan det vara annorlunda på speciella hårdvarumoduler som UART och liknande. I vissa fall kan man då i UART-konfigen tala om att den ska vara inverterad, för att få det som man vill. Annars får man invertera utvändigt. Precis samma sak på ingångar.

Re: IR Reciever till pickit2/16F690

Postat: 15 maj 2009, 12:20:42
av sodjan
> P1A är tydligen samma fysiska pinne som RC5.

Vadå "tydligen". Var inte det dokumentrat i databladet ?

> 1) Hur väljer jag om input ska ha jord eller +V (active high/low) för att vara sanna, och är standard alltid jord?

Frågan är felstäld.
Om det gäller standardfunktioner (INT-ingångar eller liknande) i processorn så framgår det av databladet.
När det gäller funktioner i din egen applikation så väljer du det själv.
Eller så styrs det av hur en extern krets fungerar.

> 2) Hur väljer jag om outputs ska ge jord eller +V?

Märklig fråga, det väljer du ju via PORT registret !?
Vad menar du igentligen ?

Re: IR Reciever till pickit2/16F690

Postat: 15 maj 2009, 13:01:41
av Xor
sodjan skrev: Vadå "tydligen". Var inte det dokumentrat i databladet ?
Jodå.. Men databladet är inte alltid självklart om man är nybörjare i mikrodatorprogrammering, det kommer nog ta ett tag innan man får full kläm på detta.
sodjan skrev: Märklig fråga, det väljer du ju via PORT registret !?
Vad menar du igentligen ?
Tack! Det var exakt det jag menade. Är som sagt nybörjare och allt är inte självklart ännu, det är därför jag frågar.

För att ta frågorna via ett exempel:

Kod: Markera allt

/* MAIN APPLICATION */
void main (void)
{
	INTCON=0;

	TRISC = 0b11111110;
	TRISB = 0b11111111;

	while(1){
		if(RB6){
			RC0=1;
		} else {
			RC0=0;
		}
	}	
}
Varför är RB6 sann vid +V och inte vid jord, jag förstår inte vad jag har för skillnad i detta exempel och min kod i postningen över?

Efter att jag gett +V så fortsätter RC0 att lysa tills jag ger jord på RB6? Borde den inte slockna så snart +V är borta?

Detta är förmodligen självklarheter för er, men jag vore tacksam om jag kunde få ett par minuter av någons tid att få detta förklarat för mig.

Re: IR Reciever till pickit2/16F690

Postat: 15 maj 2009, 13:10:24
av sodjan
OK, det du frågar om är alltså vad *C* anser är "sant" resp "falskt",
det är ju en helt annan sak ! Det har inte ett smack med processorn,
digitalteknik, elektronik eller något annat att göra, enbart hur "sant"/"falst"
är definierat i just programmeringspråket C...

Personligen tycker jag ett det skrivsättet är lite slappt, man kan
lika gärna skriva "if(RB6 == 1){", vilket gör det hela lite tydligare...

> Efter att jag gett +V så fortsätter RC0 att lysa tills jag ger jord på RB6? Borde den inte slockna så snart +V är borta?

Här har du också kapitalt missförstått... :-) Du "ger" ingenting alls !

RC0 kan/ska två olika nivåer på pinnen. Antigen +V eller GND. INGENTING ANNAT !!
T.ex så ska den *ALDRIG* vara öppen/oansluten så länge som RC0 är ingång !

En gång till... *HA ALDRING ÖPPNA/OANSLUTNA CMOS INGÅNGAR !!*