Skocz do zawartości

Programowanie zmiennych w jednym wierszu


miccaldo

Pomocna odpowiedź

Witam, mam proste pytanie, otóż na początku programu zdefiniowałem zmienne

#define F_CPU 1000000L 
#include <avr/io.h> 
#include <util/delay.h>
#define red 0x21; 
#define bl_1 0x08; 
#define bl_2 0x02; 
#define gr_1 0x04;  
#define gr_2 0x01;  
#define yellow 0x12; 
#define buzz 0x01;

I teraz, np. piszę

PORTD |= gr_1;

PORTD |= yellow;

PORTD |= red;

to jak mam napisać to ciągiem, w jednym wierszu?

Link do komentarza
Share on other sites

A jak próbowałeś?

Na logikę, nawet bez znajomości programowania da się to wymyślić:

PORTD |= gr_1 | yellow | red;

Jak nie rozumiesz tego prostego kodu to napisz czego konkretnie, postaramy się jakoś to wyjaśnić. Przede wszystkim przeczytaj o operacjach bitowych.

Link do komentarza
Share on other sites

Witam, mam proste pytanie, otóż na początku programu zdefiniowałem zmienne
#define red 0x21; 

Istotny błąd. To nie są zmienne, to są stałe podmieniane przez preprocesor.

Zainteresuj się różnicami pomiędzy stałymi preprocesora (#define), stałymi (const) i zmiennymi, a życie stanie się łatwiejsze.

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

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • 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.