Avr projekt funkar bara med isp inkopplad. Nybörjarmiss?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Re: Avr projekt funkar bara med isp inkopplad. Nybörjarmiss?

Inlägg av Micke_s »

Ja
tokfan
Inlägg: 694
Blev medlem: 10 juni 2010, 14:05:13

Re: Avr projekt funkar bara med isp inkopplad. Nybörjarmiss?

Inlägg av tokfan »

Får jag fråga en basic fråga jag inte får ordning på:

Jag kom på att jag vill kunna läsa av om det är kortis i sladdarna jag testar. Jag vet inte vilken operand jag ska använda för att läsa av port så att det endast blir "True" om rätt pinne har spänning på sig.

Typ if(test_PIN & 0b00100000 ==1)
....tänd ok led.

Om någon annan pinne har spänning är det kortis och det ska inte tändas ok led.

Vet att det är grunder men jag får fasen inte koll på det.
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Re: Avr projekt funkar bara med isp inkopplad. Nybörjarmiss?

Inlägg av Micke_s »

Gör såhär istället så slipper du jämföra med samma tal på båda sidorna, din kod kommer inte fungera.
Parentes runt och-instruktionen är bra också.

Jämföra mot 0 brukar också vara snabbare för många MCU:er...

Kod: Markera allt

if( (test_PIN & 0b00100000) != 0){
  //pin High
}

Kod: Markera allt

if( (test_PIN & 0b00100000) == 0){
  //pin Low
}
tokfan
Inlägg: 694
Blev medlem: 10 juni 2010, 14:05:13

Re: Avr projekt funkar bara med isp inkopplad. Nybörjarmiss?

Inlägg av tokfan »

Nej fasen nåt blir galet.

XLR sladdarna har tre pinnar.
Nu lyser rätt diod om pinnen jag läser av får en spänning.
Den lyser också när pinnen bredvid får 5V på sig samtidigt (= tex kortis i xlr sladden).
Det är det jag vill undvika.
Den ska bara lysa när jag enbart har 5V på pinne 0b00100000. Annars ska ingen diod tändas då sladden är kass.

Här är mitt renodlade exempel:


Kod: Markera allt

int main(void)
{
	DDRB = 0x0F;
	PORTB &= 0xF0;
	DDRD = 0x0F;
	
    
	while(1)
    {
		
		
		if(debounce())
		{
			TEST_PORT |= TEST_OUT_2;
				
		}	
					
		if ((PIND & 0b00100000) != 0)
		{
				OK_LED_PORT|= OK_LED_2;
		}
		else
		{
				OK_LED_PORT = 0x00;
		}	 	 
	}		
					
			
}				
tokfan
Inlägg: 694
Blev medlem: 10 juni 2010, 14:05:13

Re: Avr projekt funkar bara med isp inkopplad. Nybörjarmiss?

Inlägg av tokfan »

Jag upptäckte nu att PIND och PORTD styrs tillsammans eller vad man ska säga.
Trodde jag kunde skriva vad som helst till PIND utan att PORTD påverkades.

Skriver jag såhär så funkar det.
Ser dock inte så proffsigt ut.

(bit 1 skickas från PORTD för att sedan tas emot av bit 5 på PIND om sladden är hel.)

Kod: Markera allt


if ((PIND == 0b00100010) )
		{
				OK_LED_PORT|= OK_LED_2;
		}
		else
		{
				OK_LED_PORT = 0x00;
		}	 	 
tokfan
Inlägg: 694
Blev medlem: 10 juni 2010, 14:05:13

Re: Avr projekt funkar bara med isp inkopplad. Nybörjarmiss?

Inlägg av tokfan »

Fast gjorde man såhär så ser det ändå ganska ordnat ut.
Har ingen aning om hur en som kan sånt här skulle lagt upp det.

Kod: Markera allt


if(TEST_PIN == (TEST_IN_2|TEST_OUT_2 )) 
{
	OK_LED_PORT |= OK_LED_2;
	
}
Skriv svar