romkli Napisano Kwiecień 24, 2018 Udostępnij Napisano Kwiecień 24, 2018 Piszé wlasná biblioteke do moich projektow i z tym zwiazanym mam pytanie: Czy w preprocesorze mogé porównac z wartoscia zniennej. Moze to brzmi nie zrozumiale, ale daje przyklad: ... a = 5; ... #define PIN a ... #if PIN == 1 ... #endif #if PIN == 5 ... #endif ... Wiem, ze powinno to byc: ... #define PIN 5 ... #if PIN == 1 ... #endif #if PIN == 5 ... #endif ... Nigdzie nie moge znalezc w rozwiazaniu mojego problemu Cytuj Link do komentarza Share on other sites More sharing options...
ethanak Kwiecień 24, 2018 Udostępnij Kwiecień 24, 2018 Preprocesor nic nie wie o żadnych zmiennych - dla niego kod programu to tylko tekst który może jakoś tam zmieniać według jakichś tam reguł. 1 Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Kwiecień 24, 2018 Udostępnij Kwiecień 24, 2018 romkli, a w jakim celu chcesz to robić? Może jest zupełne inne rozwiązanie Twojego problemu 🙂 Cytuj Link do komentarza Share on other sites More sharing options...
romkli Kwiecień 25, 2018 Autor tematu Udostępnij Kwiecień 25, 2018 OK. Już rozwiązałem mój problem. W mam zawaloną głowę, więc myślę z pewnym ograniczeniem. [ Dodano: 25-04-2018, 12:35 ] Teraz mam inne pytanie. Piszę dwie biblioteki usart i i2c. W nich również dopisuję kondigurację i tu mam problem. W jednej dopisuję: ... GPIO_InitTypeDef gpio; I2C_InitTypeDef i2c; ... gpio.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7; // SCL, SDA gpio.GPIO_Mode = GPIO_Mode_AF_OD; gpio.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &gpio); I2C_StructInit(&i2c); i2c.I2C_Mode = I2C_Mode_I2C; i2c.I2C_ClockSpeed = 100000; I2C_Init(I2C1, &i2c); I2C_Cmd(I2C1, ENABLE); ... w drugiej: ... GPIO_InitTypeDef gpio; USART_InitTypeDef uart; ... GPIO_StructInit(&gpio); gpio.GPIO_Pin = GPIO_Pin_2; gpio.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOA, &gpio); gpio.GPIO_Pin = GPIO_Pin_3; gpio.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &gpio); USART_StructInit(&uart); uart.USART_BaudRate = 115200; USART_Init(USART2, &uart); USART_Cmd(USART2, ENABLE); ... i tu mam problem, bo program nie startuje. Jak zmienię i całą konfiguracje mam w main ... GPIO_InitTypeDef gpio; I2C_InitTypeDef i2c; USART_InitTypeDef uart ... GPIO_StructInit(&gpio); gpio.GPIO_Pin = GPIO_Pin_2; gpio.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOA, &gpio); gpio.GPIO_Pin = GPIO_Pin_3; gpio.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &gpio); USART_StructInit(&uart); uart.USART_BaudRate = 115200; USART_Init(USART2, &uart); USART_Cmd(USART2, ENABLE); gpio.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7; // SCL, SDA gpio.GPIO_Mode = GPIO_Mode_AF_OD; gpio.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &gpio); I2C_StructInit(&i2c); i2c.I2C_Mode = I2C_Mode_I2C; i2c.I2C_ClockSpeed = 100000; I2C_Init(I2C1, &i2c); I2C_Cmd(I2C1, ENABLE); ... wszystko jest ok. [ Dodano: 25-04-2018, 20:30 ] Kolejny problem rozwiazany. Cytuj Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. 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
Pomocna odpowiedź
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!