-
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
- SFP, 10G, simplex sc/apc
- [słabe wiatry powodują - przyp. JMJ] Energetyczny paraliż w Niemczech
- NxtPaper
- Programiści nie przestają zadziwiać świat
- Długi kabel zasilający a na końcu procek
- Dlaczego nam nie idzie
- Co czujnik to inna temperatura
- Jak naprawić pilota
- Dlaczego TMP wer. 2.0 nie może być sprzedawany jako patyk USB lub karta PCIe 1x?!?
- produkcja w UE
- Pamięć SRAM nie działa z Z80182
- plyta indukcyjna - naprawa
- założyłem kamerę
- syrenki alarmów
- Czym obecnie programuje się EPROM-y?
Najnowsze wątki
- 2025-09-15 Warszawa => Specjalista rekrutacji IT <=
- 2025-09-15 Warszawa => International Freight Forwarder <=
- 2025-09-15 Lublin => ERP Implementation Consultant (AP Module) <=
- 2025-09-15 Warszawa => Engineering Manager (doświadczenie w branży lotniczej lu
- 2025-09-15 "Jestem z ..."
- 2025-09-15 jak sprawdzić czy zerwałem gwint
- 2025-09-14 UWAGA: MAM PODEJRZENIE, ŻE onet.pl DOKONUJE ATAKÓW!!!
- 2025-09-14 zarobki w 1995r
- 2025-09-13 Korea Południowa odpowie za niewolnictwo seksualne armii USA
- 2025-09-13 Zatrzymano zabójcę Charliego Kirka
- 2025-09-13 Wrześniowe promocje na ładowarkach
- 2025-09-13 Warszawa => BI Developer <=
- 2025-09-13 Warszawa => Sales Assistant <=
- 2025-09-13 Warszawa => Lead SAP PP Consultant <=
- 2025-09-13 Jestem pod wrażeniem. Komputery bankowe w łikendy nie odpoczywają ;-)