Witam, mam dziwny blad, poniewaz robie program ktory bierze w argumencie wskaznik do struktury i odczytuje z niego przebieg efektu jaki maja tworzyc diody w ukladzie z wykorzystaniem rejestru przesuwnego
![Szczęśliwy :)](https://forum.atnel.pl/images/smilies/icon_e_smile.gif)
Wysle kod i wstawie jakie mam bledy, prosze pomoc poniewaz ja nie wiem juz co tam jest zle, a niby robie wszystko jak w ksiazce, ale jednak cos nie dziala...
Kod:
void ZROBEFEKT(struct efekt *); //* tutaj wyskakuje:
Multiple markers at this line
- 'struct efekt' declared inside parameter list [enabled by default]
- expected 'struct efekt *' but argument is of type 'struct efekt *'
- its scope is only this definition or declaration, which is probably not what you want [enabled by
default]
*//
struct efekt {
uint8_t diody[1];
uint8_t size;
uint8_t time1;
};
int main (void) {
struct efekt *wsk,jeden;
wsk = &jeden;
jeden.diody[0] = 0b00000000;
jeden.diody[1] = 0b11111111;
jeden.size = 1;
jeden.time1 = 200;
while(1) {
ZROBEFEKT(wsk); //* tutaj:
passing argument 1 of 'ZROBEFEKT' from incompatible pointer type [enabled by default]
*//
}
}
void ZROBEFEKT(struct efekt * ptr) { //* a tutaj:
conflicting types for 'ZROBEFEKT'
*//
uint8_t i,k;
for(i=0;i<=ptr->size;i++) {
for(k=0;k<=ILOSCDIOD;k++) {
if(((ptr->diody[i]>>k)&(0x01))==1) ON();
if(((ptr->diody[i]>>k)&(0x01))==0) OFF();
}
ZAPISZ();
_delay_ms(ptr->time1);
}
}