Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 31 sie 2026, o 09:46


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 
Autor Wiadomość
PostNapisane: 5 kwi 2013, o 21:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 lip 2012
Posty: 306
Pomógł: 0

Zgodnie z zaleceniem by podzielić mój nieczytelny kod na osobne pliki został już wykonany.
I problem pojawia się z plikiem obsługi klawiatury. Po kompilacji zwraca trochę błędów ale wszystkie tej treści :
Kod:
expected '=', ',', ';', 'asm' or '__attribute__' before 'flaga_klaw'

Wydaje mi się że problem leży po stronie typedefine:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Tylko jak dołączę ten kod do klawiatura.h to pojawia się błąd:
Kod:
previous declaration of 'u08' was here

I to samo w main.c więc nie mogą się dublować one.
Dziwna sprawa bo inne pliki korzystają też z tych definicji i nie zwracają żadnego błędu.
tak wygląda plik klawiatura.c:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


klawiatura.h
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


i main.c:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Ktoś podpowie co tu źle zrobiłem ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 kwi 2013, o 21:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 lip 2012
Posty: 306
Pomógł: 0

ok proszę :
Kod:
**** Build of configuration Release for project regulator temp ****

make all
Building file: ../klawiatura.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega16 -DF_CPU=8000000UL -MMD -MP -MF"klawiatura.d" -MT"klawiatura.d" -c -o"klawiatura.o" "../klawiatura.c"
In file included from ../klawiatura.c:3:
../klawiatura.h:8: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'przycisk_wcisniety'
../klawiatura.h:9: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'flaga_klaw'
../klawiatura.h:10: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'ADC_pomiar'
../klawiatura.h:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'rozpisz_klawisze'
../klawiatura.c:5: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'przycisk_wcisniety'
../klawiatura.c:6: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'flaga_klaw'
../klawiatura.c:7: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'ADC_pomiar'
../klawiatura.c:10: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'rozpisz_klawisze'
../klawiatura.c: In function '__vector_14':
../klawiatura.c:62: error: 'flaga_klaw' undeclared (first use in this function)
../klawiatura.c:62: error: (Each undeclared identifier is reported only once
../klawiatura.c:62: error: for each function it appears in.)
../klawiatura.c:64: error: 'ADC_pomiar' undeclared (first use in this function)
make: *** [klawiatura.o] Error 1



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 kwi 2013, o 21:54 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 lip 2012
Posty: 306
Pomógł: 0

Coś takiego miało być :

main.c
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


klawiatura.c
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


klawiatura.h - bez zmian

moje_definicje.h
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Takie błędy są teraz:

Kod:
**** Build of configuration Release for project regulator temp ****

make all
Building file: ../klawiatura.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega16 -DF_CPU=8000000UL -MMD -MP -MF"klawiatura.d" -MT"klawiatura.d" -c -o"klawiatura.o" "../klawiatura.c"
In file included from ../klawiatura.c:3:
../moje_definicje.h:11: error: multiple storage classes in declaration specifiers
../moje_definicje.h:12: error: multiple storage classes in declaration specifiers
../moje_definicje.h:13: error: multiple storage classes in declaration specifiers
In file included from ../klawiatura.c:4:
../klawiatura.h:9: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'przycisk_wcisniety'
../klawiatura.h:10: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'flaga_klaw'
../klawiatura.h:11: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'ADC_pomiar'
../klawiatura.h:13: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'rozpisz_klawisze'
../klawiatura.c:7: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'przycisk_wcisniety'
../klawiatura.c:8: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'flaga_klaw'
../klawiatura.c:9: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'ADC_pomiar'
../klawiatura.c:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'rozpisz_klawisze'
../klawiatura.c: In function '__vector_14':
../klawiatura.c:64: error: 'flaga_klaw' undeclared (first use in this function)
../klawiatura.c:64: error: (Each undeclared identifier is reported only once
../klawiatura.c:64: error: for each function it appears in.)
../klawiatura.c:66: error: 'ADC_pomiar' undeclared (first use in this function)
make: *** [klawiatura.o] Error 1



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 kwi 2013, o 22:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 lip 2012
Posty: 306
Pomógł: 0

No wstawiłem do klawiatura.c :
#include "moje_definicje.h"
chyba że miałem wkleić :
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Usunąłem z main.c i mam coś takiego:
Kod:
**** Build of configuration Release for project regulator temp ****

make all
Building file: ../klawiatura.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega16 -DF_CPU=8000000UL -MMD -MP -MF"klawiatura.d" -MT"klawiatura.d" -c -o"klawiatura.o" "../klawiatura.c"
In file included from ../klawiatura.c:3:
../moje_definicje.h:11: error: multiple storage classes in declaration specifiers
../moje_definicje.h:12: error: multiple storage classes in declaration specifiers
../moje_definicje.h:13: error: multiple storage classes in declaration specifiers
In file included from ../klawiatura.c:4:
../klawiatura.h:9: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'przycisk_wcisniety'
../klawiatura.h:10: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'flaga_klaw'
../klawiatura.h:11: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'ADC_pomiar'
../klawiatura.h:13: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'rozpisz_klawisze'
../klawiatura.c:7: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'przycisk_wcisniety'
../klawiatura.c:8: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'flaga_klaw'
../klawiatura.c:9: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'ADC_pomiar'
../klawiatura.c:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'rozpisz_klawisze'
../klawiatura.c: In function '__vector_14':
../klawiatura.c:64: error: 'flaga_klaw' undeclared (first use in this function)
../klawiatura.c:64: error: (Each undeclared identifier is reported only once
../klawiatura.c:64: error: for each function it appears in.)
../klawiatura.c:66: error: 'ADC_pomiar' undeclared (first use in this function)
make: *** [klawiatura.o] Error 1



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 kwi 2013, o 22:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 lut 2012
Posty: 598
Lokalizacja: Warszawa
Pomógł: 13

Jeżyk-1 napisał(a):
Składnia: [ Pobierz ] [ Ukryj ]
Składnia: [ Pobierz ] [ Pokaż ]
język c
typedef uint8_t u08;
typedef int8_t i08;
typedef uint16_t u16;
GeSHi

Na podstawie kodu z pierwszego postu ...... przenieś je do pliku klawiatura.h
A jeżeli masz zamiar stworzyć plik moje_definicje.h , to pamiętaj żeby dołączyć ten plik wszędzie gdzie będziesz używał tych definicji ;)

------------------------ [ Dodano po: 6 minutach ]

klawiatura.h

wywal inline przy deklaracji void adc(void);



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 kwi 2013, o 22:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 lip 2012
Posty: 306
Pomógł: 0

Ok trochę jeszcze błędów poprawiłem. Ale mam dylemat co z tym fantem zrobić:
Plik zegar.c używa zmiennej sek
Więc zegar.h ma linie:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

a zegar.c ma :
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Teraz plik termometr.c też używa tej zmiennej. Więc co mogę teraz zrobić ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 kwi 2013, o 22:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 lip 2012
Posty: 306
Pomógł: 0

Tak. to już mam ale w moje_definicje.h nie mam zmiennej "sek" która jest już zadeklarowana w zegar.h z extern i w zegar.c bez extern



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 kwi 2013, o 22:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 lip 2012
Posty: 306
Pomógł: 0

Ok tylko nie krzycz jak coś :)
main.c:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


zegar.h:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


zegar.c:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


termometr.h:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


termometr.c:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


moje.definicje.h:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


klawiatura.h:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


klawiatura.c:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


grzanie.c:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


grzanie.c
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


chlodzenie.h:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


chlodzenie.c:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


------------------------ [ Dodano po: 9 minutach ]

A i taki błąd teraz zwraca:
Kod:
**** Build of configuration Release for project regulator temp ****

make all
Building file: ../chlodzenie.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega16 -DF_CPU=8000000UL -MMD -MP -MF"chlodzenie.d" -MT"chlodzenie.d" -c -o"chlodzenie.o" "../chlodzenie.c"
../chlodzenie.c:7: warning: 'procent_ch' defined but not used
Finished building: ../chlodzenie.c
 
Building file: ../grzanie.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega16 -DF_CPU=8000000UL -MMD -MP -MF"grzanie.d" -MT"grzanie.d" -c -o"grzanie.o" "../grzanie.c"
../grzanie.c:14: warning: 'procent' defined but not used
Finished building: ../grzanie.c
 
Building file: ../klawiatura.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega16 -DF_CPU=8000000UL -MMD -MP -MF"klawiatura.d" -MT"klawiatura.d" -c -o"klawiatura.o" "../klawiatura.c"
Finished building: ../klawiatura.c
 
Building file: ../main.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega16 -DF_CPU=8000000UL -MMD -MP -MF"main.d" -MT"main.d" -c -o"main.o" "../main.c"
In file included from ../main.c:12:
../zegar.h:4: warning: 'sek' initialized and declared 'extern'
../zegar.h:6: warning: 'min' initialized and declared 'extern'
../zegar.h:7: warning: 'godz' initialized and declared 'extern'
../main.c: In function 'main':
../main.c:57: warning: implicit declaration of function 't_moc_wiania'
../main.c: At top level:
../zegar.h:12: warning: inline function 'zegar_przekrecenie' declared but never defined
../zegar.h:9: warning: inline function 'timer_zegar' declared but never defined
../termometr.h:13: warning: inline function 'pomiar_temp' declared but never defined
../klawiatura.h:14: warning: inline function 'adc' declared but never defined
../zegar.h:12: warning: inline function 'zegar_przekrecenie' declared but never defined
../zegar.h:9: warning: inline function 'timer_zegar' declared but never defined
../termometr.h:13: warning: inline function 'pomiar_temp' declared but never defined
../klawiatura.h:14: warning: inline function 'adc' declared but never defined
../grzanie.h:23: warning: 'procent' used but never defined
../chlodzenie.h:7: warning: 'procent_ch' used but never defined
Finished building: ../main.c
 
Building file: ../termometr.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega16 -DF_CPU=8000000UL -MMD -MP -MF"termometr.d" -MT"termometr.d" -c -o"termometr.o" "../termometr.c"
../termometr.c: In function 'pomiar_temp':
../termometr.c:21: error: 'sek' undeclared (first use in this function)
../termometr.c:21: error: (Each undeclared identifier is reported only once
../termometr.c:21: error: for each function it appears in.)
../termometr.c: In function 'display_temp':
../termometr.c:40: warning: implicit declaration of function 'lcd_locate'
../termometr.c:41: warning: implicit declaration of function 'lcd_str'
../termometr.c:43: warning: implicit declaration of function 'lcd_int'
make: *** [termometr.o] Error 1



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 kwi 2013, o 23:07 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 lip 2012
Posty: 306
Pomógł: 0

Chyba ktoś mi tak doradził. Teraz już nie pamiętam jak to było.
To usuwam deklaracje z zegar.h i zostawiam ten plik w takiej postaci :
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


A błędy są takie :
Kod:
**** Build of configuration Release for project regulator temp ****

make all
Building file: ../main.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega16 -DF_CPU=8000000UL -MMD -MP -MF"main.d" -MT"main.d" -c -o"main.o" "../main.c"
In file included from ../main.c:12:
../zegar.h:4: warning: 'sek' initialized and declared 'extern'
../zegar.h:6: warning: 'min' initialized and declared 'extern'
../zegar.h:7: warning: 'godz' initialized and declared 'extern'
../main.c: In function 'main':
../main.c:31: warning: implicit declaration of function 'timer_zegar'
../main.c:57: warning: implicit declaration of function 't_moc_wiania'
../main.c:65: warning: implicit declaration of function 'zegar_przekrecenie'
../main.c: At top level:
../termometr.h:13: warning: inline function 'pomiar_temp' declared but never defined
../klawiatura.h:14: warning: inline function 'adc' declared but never defined
../termometr.h:13: warning: inline function 'pomiar_temp' declared but never defined
../klawiatura.h:14: warning: inline function 'adc' declared but never defined
../grzanie.h:23: warning: 'procent' used but never defined
../chlodzenie.h:7: warning: 'procent_ch' used but never defined
Finished building: ../main.c
 
Building file: ../termometr.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega16 -DF_CPU=8000000UL -MMD -MP -MF"termometr.d" -MT"termometr.d" -c -o"termometr.o" "../termometr.c"
../termometr.c: In function 'pomiar_temp':
../termometr.c:21: error: 'sek' undeclared (first use in this function)
../termometr.c:21: error: (Each undeclared identifier is reported only once
../termometr.c:21: error: for each function it appears in.)
../termometr.c: In function 'display_temp':
../termometr.c:40: warning: implicit declaration of function 'lcd_locate'
../termometr.c:41: warning: implicit declaration of function 'lcd_str'
../termometr.c:43: warning: implicit declaration of function 'lcd_int'
make: *** [termometr.o] Error 1



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 kwi 2013, o 23:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 lip 2012
Posty: 306
Pomógł: 0

ok. A co z zmienną "sek" co pisałem wcześniej ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 kwi 2013, o 23:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 lip 2012
Posty: 306
Pomógł: 0

Teraz mam takie błędy :
Kod:
**** Build of configuration Release for project regulator temp ****

make all
Building target: regulatortemp.elf
Invoking: AVR C Linker
avr-gcc -Wl,-Map,regulatortemp.map -mmcu=atmega16 -o"regulatortemp.elf"  ./chlodzenie.o ./grzanie.o ./klawiatura.o ./lcd.o ./main.o ./termometr.o ./zegar.o  ./1Wire/crc8.o ./1Wire/ds18x20.o ./1Wire/onewire.o   
./main.o: In function `main':
main.c:(.text+0x98): undefined reference to `procent'
main.c:(.text+0xb0): undefined reference to `procent_ch'
make: *** [regulatortemp.elf] Error 1



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 kwi 2013, o 06:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 lip 2012
Posty: 306
Pomógł: 0

Ok na razie kompilator nie zgłasza żadnego błędu. Okaże się w praniu co z tego wyszło :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO