Gå til innhold

Programmering av Button & LED


Anbefalte innlegg

Hei

 

Skal programmere en bryter som slår på LED

bryteren er koblet til PB0 og LED er koblet til PB4.

 

 

Når jeg har programmert som vist under, funker det som det skal; LED'en lyser når jeg trykker på bryter, og er av når jeg ikke trykker.

 

Hvis jeg fjerner "PORTB |= (1 << 0);", under void setup() så lyser lampen når jeg ikke trykker, og lyser litt sterkere når jeg trykker.

 

 

SPØRSMÅL:

Lurer på om noen kan forklare meg hvorfor jeg må ha "PORTB |= (1 << 0);"

i void setup() for å få programmet til å funke som det skal?

 

takk for hjelp.

int var;

void setup()
{
  DDRB |= (1 << 4);
  DDRB &= ~(1 << 0);
  PORTB |= (1 << 0);
}
void loop()
{
  var = PINB & _BV(PINB0);

  if (var == LOW)
  {
    PORTB |=(1<<4);
  }
  else
  {
    PORTB&=~(1<<4);
  }
}

Lenke til kommentar
Videoannonse
Annonse

Gjetter på at du programmerer på en AVR microcontroller......

 

Du gir ikke nok info til at jeg kan være helt sikker, men alle avr kontrollere jeg har jobbet med har en intern pull-up som blir aktivert hvis DDR (data-direction-register) for pinnen er satt til 0 (inngang) og PORT til 1

 

Hvis jeg har rett vil ikke knappen din bli lest av riktig hvis pull-upen er av ettersom pinnen vil flyte når knappen ikke er nede.

 

Gjetter vilt på at bryteren er koblet til 0v på en side og kontrolleren pinnen portB0 på den andre.

 

Hva er PORTB?

 

Hvis dette er snakk om en AVR kontroller er PORTB et register (tenk variable) som inneholder avlesningen setter av spenningsnivået (høy/lav) på flere fysiske innganger utganger(som oftest 8) kalt B0-7.

For å lese av sette verdien i B0 leser skriver man av til det første bittet i PORTB.

 

edit: whops...forvekslet PORTB med PINB i forklaringen til Lycantrophe

Endret av Giddion
  • Liker 2
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...