IR Reciever till pickit2/16F690

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Re: IR Reciever till pickit2/16F690

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

Re: IR Reciever till pickit2/16F690

Inlägg 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 ?
Xor
Binär
Inlägg: 15
Blev medlem: 12 juni 2006, 08:00:24
Ort: Eskilstuna
Kontakt:

Re: IR Reciever till pickit2/16F690

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

Re: IR Reciever till pickit2/16F690

Inlägg 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 !!*
Skriv svar