stimulus controller i mplab?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
PopUnoNkoK
Inlägg: 789
Blev medlem: 10 december 2007, 12:40:08
Ort: Piteå

stimulus controller i mplab?

Inlägg av PopUnoNkoK »

Jag skulle behöva lite hjälp med MPLAB simulatiorn.

Jag försöker att få min PIC att reagera på en knapptryckning men det händer ingen ting.

När jag då skulle börja debugga i MPLAB sim så får jag inte riktigt kläm på stimulus fönstret.

FRÅGAN: Hur kan jag med musen klicka på en knapp i MPLAB så att tex PORTA, RA2 blir hög eller låg.

Jag har läst denna:
http://www.microchip.com/stellent/idcpl ... m=en022520

Men det händer inget med PORTA när jag tittar i File registers. Alltså Det blir ingen ändring på bitarna på PORTA.

Jag har tryckt build All och stegat mig fram till huvudloopen, hela TRISA är satt till Input (att alla bitar är satt till input är bara för debuggingen nu)

Övrig information:

Kod: Markera allt

main
		btfss		PORTA, 2		; testa knappen
		goto		main
Hade alltså tänkt ha en kod där inget händer om man inte håller in knappen så den är hög.

MVH Peter F
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: stimulus controller i mplab?

Inlägg av sodjan »

> hela TRISA är satt till Input

Och de analoga funktionerna ?
PopUnoNkoK
Inlägg: 789
Blev medlem: 10 december 2007, 12:40:08
Ort: Piteå

Re: stimulus controller i mplab?

Inlägg av PopUnoNkoK »

Ööhhh... :oops:

Nu känner jag att jag har någon stor lucka i mina väldigt begränsade kunskaper. Har ingen koll på analoga ingångar eller liknande... Det får jag försöka läsa på om.

MVH Peter F
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: stimulus controller i mplab?

Inlägg av sodjan »

Ja, inte vet jag, du "mörkar" ju med vilken processor du använder.
Man annars så brukar det finnas en liten grå ruta med "Note:" i fet stil
i kapitlet om I/O PORTS. Svårt att missa om man inte slarvar, så klart...
PopUnoNkoK
Inlägg: 789
Blev medlem: 10 december 2007, 12:40:08
Ort: Piteå

Re: stimulus controller i mplab?

Inlägg av PopUnoNkoK »

Min mening var förstås inte att mörka något, ej heller att slarva eller verka slarvig.
Jag använder PIC16F628A.

Jag läste kapitel 8 i elmer 160 och började att följa den lektionen och implementera den i en kod jag hade. När jag stötte på problem (som jag bla beror på att de använder en äldre verion av MPLAB sim, sökvägen till stimulusfönstret i MPLAB stämmer inte med min version) så ställde jag frågan här.

I/O PORTS kapitlet i databladet till picen har jag läst och kan tyvärr inte säga att NOTE: rutan i PORTA sektionen hjälpte mig. Jag undrar dock om det kan vara att jag måste ställa in (Stänga av?) CMCON & VRCON? Jag vet dock inte hur jag ska ställa bitarna för att TRISA ska bli "vanliga" ingångar.

Antagligen är det en massa som jag har missat.

Jag märker att jag inte ställt så solklara frågor i detta inlägg så här kommer den.

Om jag vill ha PORTA till "vanliga" ingångar, alltså som sätter motsvarande bit hög om en strömbrytare är intryckt, alltså att kretsen är sluten. Vad är det för inställningar jag måste göra förutom att sätta rätt bit i TRISA till 1?

MVH Peter F
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: stimulus controller i mplab?

Inlägg av sodjan »

Istället för att bara säga att det inte hjälpte, så kan du förklara
lite närmare *vad* som var oklart. Då går det lättare att
förtydliga. Annars så går det bara att säga igen att allt som
du behöver veta står där i på den sidan.

T.ex note 2 i den grå rutan :

-- "On Reset, the TRISA register is set to all inputs.
-- The digital inputs (RA<3:0>) are disabled..."

och i stycket direkt övenför den grå rutan :

-- "The operation of these pins are selected by control bits in
-- the CMCON (Comparator Control register) register and the
-- VRCON (Voltage Reference Control register) register."

Har du kollat på beskrivningen av CMCON alls ?

Och vidare också direkt ovanför den grå rutan :

-- "When selected as a comparator input, these pins will read as ‘0’s."

Det förklarar varför din kod inte fungerar, eller hur ?

Slutligen så finns det ju även ett kodexempel ("Example 5-1"),
det borde ge ledtrådar nog för att se vad som saknas.
PopUnoNkoK
Inlägg: 789
Blev medlem: 10 december 2007, 12:40:08
Ort: Piteå

Re: stimulus controller i mplab?

Inlägg av PopUnoNkoK »

Ber om ursäkt att det tagit tid att svara, jag fick problem med drivrutinerna till Usb -> Seriel kabeln igen. De fick visst för sig att avinstalera sig eller nåt. Har varit med om samma sak till min GPS. Jaja, det räckte då med en ominstalation.

Sodjan:
Iblan kan det vara svårt att uttrycka vad som är oklart när ganska mycket är oklart.
-- "On Reset, the TRISA register is set to all inputs.
-- The digital inputs (RA<3:0>) are disabled..."
Tex en sådan här sak, jag hade läst detta fram och tillbaka men trodde att jag i och med att jag satt portarna till utgångar hade Enablat dem.

Trots att jag inte lyckats specificera vad som var oklart lyckades du svara på många av mina frågor, tex angående att CMCON inställningarna var "obligatoriska".

Jag har testat som snabbast, det funkade fint i MPLAB men jag fick skumma problem när jag testade i "verkliga världen".

Dioden som inte skulle blinka när knappen inte var intryckt gjorde inte det till en början men började blinka lite till och från när jag var i närheten av strömbrytaren som om det var en rörelsesensor eller liknande. :?

Ska kolla imorgon med ny brytare och så kanske jag återkommer med någon följdfråga.

Tack än en gång Sodjan, ber om ursäkt om mina frågor ibland kanske är lite förhastade.

MVH Peter F
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: stimulus controller i mplab?

Inlägg av sodjan »

Ingen fara, jag hade kunnat svara med en enda rad, men det hade inte
varit lika pedagogiskt... :-)

Generellt gäller på *alla* PICs att om en pinne även har analoga funktioner
(ADC, komparatorer) så är pinnarna alltid analoga vid reset. Det finns
naturliga orsaker till det. Och man måste alltså alltid slå av de analoga
funktionerna om man ska använda pinnen "digitalt".

Och alla datablad försöker i alla fall att vara tydligt på den punkten.. :-)
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: stimulus controller i mplab?

Inlägg av sodjan »

> men började blinka lite till och från när jag var i närheten

Några öppna ingånger kanske ?
Hur är det kopplat ?
PopUnoNkoK
Inlägg: 789
Blev medlem: 10 december 2007, 12:40:08
Ort: Piteå

Re: stimulus controller i mplab?

Inlägg av PopUnoNkoK »

Nu har jag bytt brytare men det kvastår problem.

Vi kan strunta i det jag skrev om att brytaren blev någon form av rörelsesensor. Måste ha haft nåt konstigt i min kod (inte öppna ingångar dock).
Nu har jag en ny brytare som i startup är i brytet läge. Det som händer nu är att båda Lysdioderna (RB0 & RB1) lysser när jag startar. När jag sedan slår på brytaren så lyser bara (RB1) dioden.

Den senare delen gör precis som jag vill, alltså när brytaren är på så ska (RB1) lysa, men varför i fridenstider snurrar den hela Huvudloopen när brytaren är avstängd?

Det fungerar som det ska i MPLAB. (jag fick stimuluscontrollern att fungera när jag använt koden från exemplet i databladet :oops: )

KODEN:

Detta är kodstycket där jag sätter upp I/O pinnarna:

Kod: Markera allt

	banksel		TRISB			; 
		clrw						; Make all PORTB bits output
		movwf		TRISB			; 
		movlw		B'00000010'		; Set PORTA bits
		movwf		TRISA			; 
		banksel		PORTA			; Back to bank 0
		MOVLW 		0x07 ;Turn comparators off and
		MOVWF 		CMCON ;enable pins
		errorlevel	+302

Och här är huvudloopen:

Kod: Markera allt

main	
		movlw		B'00000010'		
		movwf		PORTB
		btfss		PORTA,1	
		goto		main			
test	movlw		B'00000001'	
		movwf		PORTB		
		btfsc		PORTA,1	
		goto		test		
		goto		main

		nop
		end


Brytaren är kopplad från pinnen (RA1) till Jorden. (Jag hoppas verkligen att det är så det ska vara, pinsamt dålig koll på ellära). Men det Scheman jag hittat har (enligt mig) visat att det ska vara så. Bland annat sida1 i denna http://www.gooligum.com.au/tutorials/ba ... se_A_4.pdf. Bra lektioner för övrigt.

Någon som har något förslag på varför processorn kör hela mainloopen och struntar i "btfss PORTA,1" instruktionen?

MVH Peter F
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: stimulus controller i mplab?

Inlägg av sodjan »

> Brytaren är kopplad från pinnen (RA1) till Jorden.

Vad har du för pullup ?
Jag tror fortfarande att du har en öppen ingång (sannolikt RA1).

Hur är MCLR kopplat ?
PopUnoNkoK
Inlägg: 789
Blev medlem: 10 december 2007, 12:40:08
Ort: Piteå

Re: stimulus controller i mplab?

Inlägg av PopUnoNkoK »

Han har gjort det igen! :)

Tack Sodjan

Nu har jag kopplat ett motstånd så som denna bild visar:
Bild

Jag tänkte att en öppen ingång var en ingång som inte var kopplad till något. Vilket jag förstår kan ställa till bekymmer. Sedan tog det alldeles förlänge för mig att inse att en brytare som är "öppen" får precis den effekten, en ingång som inte är kopplad till något. :doh:

Motstådet sitter där och det fungerar precis som det ska.

Jag tror mig förstå varför det ska sitta där, vad jag däremot inte får rätsida på är begreppet pull-up och pull-down.
Som jag har förstått det så sitter motståndet där för att tilhandahålla pinnen med en svagström som visar att pinnen är låg, alltså så svag ström så att pinnen är låg men inte så låg så att den ingången är "öppen". Är dettta någorlunda rätt tänkt?
Men vad en pull-up eller pull-down är vet jag inte, är det synonymt med ett motstånd?

Tack igen sodjan.

MVH Peter F



PS. MCLR är alltså kopplad via ett 33k motstånd (En extern pull-up eller pull-down?). Ds
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Re: stimulus controller i mplab?

Inlägg av vfr »

Som jag har förstått det så sitter motståndet där för att tilhandahålla pinnen med en svagström som visar att pinnen är låg

Njaa. Hög i ditt fall. Det är just det som är skillnaden mellan pullup och pulldown. Pullup är motstånd till plus medan pulldown är motstånd till nolla. Näästan självklart, eller... :D
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: stimulus controller i mplab?

Inlägg av sodjan »

> Jag tänkte att en öppen ingång var en ingång som inte var kopplad till något.

När ingen trycker på knappen så är den inte det.

> Som jag har förstått det så sitter motståndet där för att tilhandahålla pinnen med en svagström som visar att pinnen är låg,

Hög.

> alltså så svag ström så att pinnen är låg men inte så låg så att den ingången är "öppen".

Hög (igen).

> Men vad en pull-up eller pull-down är vet jag inte, är det synonymt med ett motstånd?

Det betyder bara "dra-hög" resp "dra-låg". Hur det är löst är mindre instressant,
men ofta är det löst med ett motstånd (men det måste inte vara det).
PopUnoNkoK
Inlägg: 789
Blev medlem: 10 december 2007, 12:40:08
Ort: Piteå

Re: stimulus controller i mplab?

Inlägg av PopUnoNkoK »

Ja ni har förstås rätt...

Jag testade även att koppla om så att brytaren gick från pinnen till plus och motståndet till Jorden och då betedde sig dioderna precis tvärt om.

Jag kan lova att det inte är första eller sista gången jag tolkar mina egna kopplingar fel.

Tack för snabba och korrekta svar.

Ps. Vfr: För mig är inget självklart än... :) Ds


MVH Peter F
Skriv svar