Avr projekt funkar bara med isp inkopplad. Nybörjarmiss?
Re: Avr projekt funkar bara med isp inkopplad. Nybörjarmiss?
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.
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.
Re: Avr projekt funkar bara med isp inkopplad. Nybörjarmiss?
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...
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
}
Re: Avr projekt funkar bara med isp inkopplad. Nybörjarmiss?
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:
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;
}
}
}
Re: Avr projekt funkar bara med isp inkopplad. Nybörjarmiss?
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.)
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;
}
Re: Avr projekt funkar bara med isp inkopplad. Nybörjarmiss?
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.
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;
}