-
Data: 2017-10-20 15:17:15
Temat: Re: Definiowane portów/flag w C
Od: g...@s...invalid (Adam Wysocki) szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]sword <n...@p...onet.pl> wrote:
> Hmm, mogę dać inline ale wydaje mi się, że jestem w tym samym
> punkcie co z makrami.
Niekoniecznie.
> static inline void setbit (u8 port, u8 pin)
Nie wiem na jaką platformę piszesz, ale na AVR port nie ma typu u8
(uint8).
> No i co dalej? Chciałbym ją tak samo wywołać, np.:
>
> setbit(F_LED)
Spróbuj tak:
[gof@pi /tmp]$ cat test.c
#include <inttypes.h>
#include <avr/io.h>
// bez nawiasów, żeby nie rozwinęło się tylko do jednego argumentu
#define MAKE(port, bit) &port, _BV(bit)
// podejście z MAKE
#define LED1 MAKE(PORTB, 3)
#define BUZZER1 MAKE(PORTC, 0)
// podejście bez MAKE - bez nawiasów!
#define LED2 &PORTB, _BV(3)
#define BUZZER2 &PORTC, _BV(0)
static inline void setbit(volatile uint8_t *port, uint8_t mask)
{
*port |= mask;
}
int main(void)
{
setbit(LED1);
setbit(BUZZER1);
setbit(LED2);
setbit(BUZZER2);
return 0;
}
[gof@pi /tmp]$ avr-gcc -mmcu=atmega8 -Wall -Wextra test.c
[gof@pi /tmp]$
--
[ Email: a@b a=grp b=chmurka.net ]
[ Web: http://www.chmurka.net/ ]
Najnowsze wątki z tej grupy
- ale wiesz, że są gotowce?
- jak wykryć zapalenie żarówki?
- Cyna dylemat
- Mierniki poziomu glukozy (CGM, FGM)
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Kontrola nad prądem - sprawdź jak działa [apka - przyp. JMJ] eLicznik
- NETIA i hasło logowania
- Modulacja FM
- Najgorszy język programowania
- Kol. sukces po polsku: firma Szumisie sp. z o.o.
- Chińska Telefonia 6G - Chcą Nas Sterować Elektrycznie - Jak Kukiełki w Teatrze Lalek!!!
- RS-485 ale automatycznie dwukierunkowy
- Leżakujące SSD gubią po roku dane
- kolorowy e-paper
- Sterownik kotła CO praca PWM
Najnowsze wątki
- 2025-12-19 12 latka zabiła rok młodszą koleżanke w Jeleniej Górze
- 2025-12-19 M. Romanowski JUŻ bez ENA ale dalej z nakazem aresztowania w RP3
- 2025-12-18 ale wiesz, że są gotowce?
- 2025-12-18 Portfel bankiera -- dokąd przenieść?
- 2025-12-18 Warszawa => Inżynier Systemów i Sieci <=
- 2025-12-18 Warszawa => DevOps Engineer <=
- 2025-12-18 Trybunał "Sprawiedliwości" UE orzekł o wyższości traktatu nad Konstytucją?[Konstytucja już nie jest najważniejsza?]
- 2025-12-18 Ostrów Wielkopolski => Specjalista ds. Marketingu Online (PPC) <=
- 2025-12-17 jak wykryć zapalenie żarówki?
- 2025-12-17 Jest akt oskarżenia przeciw kulsonowi gazującemu posłankę.
- 2025-12-17 Chrzanów => Spedytor Międzynarodowy (handel ładunkami/prowadzenie f
- 2025-12-17 Warszawa => Project Manager <=
- 2025-12-16 Złomnik się SPRZEDAŁ Kanałowi ZERO
- 2025-12-16 Czy tuskie ENA będą mieć w [4 literach] W BRUKSELI? [Ziobro]
- 2025-12-16 Warszawa => Junior Rekruter <=




Chińskie auta: Od niskiej jakości do globalnego lidera. Co pokazuje raport EFL?