Skocz do zawartości

[C] Niedzialajace przyciski


Laik

Pomocna odpowiedź

mam taki oto kod:

/* "led.c" - programik do testowania środowiska WinAVR */
/* układ ATmega 1MHz */
/* PB0,PB1 - diody LED; PD0 - przycisk */

#define F_CPU 1000000L
#include <avr/io.h>
#include <util/delay.h>                

int main(void)
{
   DDRC = 0xFF; // wszystkie piny portu c jako wyjscia
 DDRB  = 0x00;
 PORTB = 0x03;

   while (1) 
   {
     PORTC = 0xFF;    /* 0xaa binarnie 1010 1010 */
     /* opóźnienie 0.33 sek. */
     _delay_ms(100); 
      PORTC = 0x00;    /* 0x55 binarnie 0101 0101 */
     /* opóźnienie 0.33 sek. */
     _delay_ms(100);

  if(!(PIND & 0x01)) PORTC = 0xFF;
   }
}

do takiego schematu :

aa_36.jpg

Dlaczego przycisk mi nie zapala diód ? tak jakby wgl nie dzialal

Link do komentarza
Share on other sites

if(!(PIND & 0x01)) PORTC = 0xFF; 

Pomyliłeś porty, podłączone jest do PB nie PD (tak przynajmniej jest na schemacie).

Natomiast jeśli jest tak jak w opisie, to trzeba włączyć pullup:

 PORTD |= 0x01;

i sterować portem B zamiast C (w komentarzu jest opis, że ledy są podpięte do PB)

[ Dodano: 11 Wrz 09 08:34 ]

I jeszcze jedno. Zaraz po instrukcji warunkowej i tak wykonujesz PORTC = 0xFF;, więc program nie ma szans dawać widocznych rezultatów.

[ Dodano: 11 Wrz 09 08:39 ]

Jeśli masz podłączenie jak na schemacie, proponuję taki kod:

int main(void)
{
 DDRC = 0xFF; // wszystkie piny portu c jako wyjscia
 DDRB  = 0x00;
 PORTB = 0x0F;

 while (1) {
   if ((PINB & 0x01)==0) 
     PORTC = 0xFF;
   else
     PORTC = 0;
   }
} 
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.