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



Teraz jest 28 paź 2024, o 14:16


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 32 ]  Przejdź na stronę 1, 2  Następna strona
Autor Wiadomość
PostNapisane: 7 maja 2012, o 18:21 
Offline
Użytkownik

Dołączył(a): 07 maja 2012
Posty: 119
Pomógł: 2

Witam, próbuję programować w C, lecz napotkałem dwa problemy:
1 Kompiluje i zapisuje do procesora bez problemu, ale program nie działa
2 W drugim projekcie pojawiają się errory

Powiem jeszcze, że używam mikrokontrolera ATmega8 z wewnętrzym oscylatorem 8Mhz,
nie działają tylko projekty z Eclipse, podobny program na pisany w Winavr i bascomie działa bez zarzutu,
w programie zmieniałem tylko porty z PC7 na PD7 oraz z PC6 na PC3, zmieniłem także procesor z atmegi32 na atmegę8


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 maja 2012, o 19:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

a na jaki kolega procesor kompiluje ?? i zmienia mu taktowanie ??

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 maja 2012, o 19:08 
Offline
Użytkownik

Dołączył(a): 07 maja 2012
Posty: 119
Pomógł: 2

Atmega8, taktowanie 8Mhz, zmieniane w mkAVRkalkulator



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 maja 2012, o 19:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

a w projekcie eclipse bo o to pytałem ??

w bascomie przecież podajesz regfile dla m8 i taktowanie , tutaj też trzeba to podać :)
jak nie zmieniłeś to nie dziwne że nie działa bo kompilujesz dla Mega32 taktowanie 10 coś tam Mhz
i się dziwisz że nie działa ??

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 maja 2012, o 19:26 
Offline
Użytkownik

Dołączył(a): 07 maja 2012
Posty: 119
Pomógł: 2

w eclipse w właściwościach ustawiłem Atmega8 oraz 8000000



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 maja 2012, o 19:30 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

jeśli tak to na pewno coś źle podłączyłeś

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 maja 2012, o 19:33 
Offline
Użytkownik

Dołączył(a): 07 maja 2012
Posty: 119
Pomógł: 2

Sprawdziłem wszystko.
Pisałem że z bascoma i winavr działają programy, tylko z eclipse nic nie działa.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 maja 2012, o 20:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

jak napisałem coś źle zrobiłeś ... definitywnie ,
a może tak :

wiesz że po zmianie czegoś w źródle trzeba dać save i potem clear project , a potem kompilować ??
inaczej kompilujesz to co było wcześniej i wgrywasz bez uwzględnienia zmian

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 maja 2012, o 20:08 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27306
Lokalizacja: Szczecin
Pomógł: 1041

ale spójrz - na pierwszym screenshocie masz ewidentne błędy - pokazane że nie rozpoznawane są podstawowe definicje preprocesora z <avr/io.h> czyli

DDRC
PORTB

itd

proponuję tak na szybko - pierwsze co zrobić to odpalić inną wersję Eclipse - np tą z książki - ale po angielsku - i zobacz czy przypadkiem nagle wszystko się nie skompiluje bez błędu.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 maja 2012, o 20:24 
Offline
Użytkownik

Dołączył(a): 07 maja 2012
Posty: 119
Pomógł: 2

Też nie idzie, ale teraz czepia się tylko bibliotek dlaczego, ich nie rozpoznaje?


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 maja 2012, o 20:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

Gdzieś już o tym pisałem na forum , poszukaj a życie stanie się prostsze

o tu: topic1046.html

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 maja 2012, o 20:45 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27306
Lokalizacja: Szczecin
Pomógł: 1041

A zapytam z innej beczki - czy obejrzałeś dokładnie lekcje VIDEO zamieszczone na DVD dołączonym do książki ???????? - bo tam jest wiele wyjaśnionych takich niuansów o które teraz pytasz - a robisz coś mocno nie po kolei - tak mi się wydaje....

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 maja 2012, o 10:53 
Offline
Użytkownik

Dołączył(a): 07 maja 2012
Posty: 119
Pomógł: 2

Nie oglądałem lekcji wideo, bo robiłem wszystko po kolei, napotkałem problemy, więc postanowiłem je rozwiązać przed dalszym studiowaniem książki i zawartości płyty; ale teraz już przejrzałem topic 1046, oraz lekcje wideo, (domyślam się że chodzi o lekcję_03, ale dalej nie wiem o co chodzi.

Teraz wszystko teoretycznie działa, zapis konsoli z budowania:


**** Build of configuration Release for project 01_DiodaLED ****

make all
Invoking: Print Size
avr-size --format=avr --mcu=atmega8 01_DiodaLED.elf
AVR Memory Usage
----------------
Device: atmega8

Program: 98 bytes (1.2% Full)
(.text + .data + .bootloader)

Data: 0 bytes (0.0% Full)
(.data + .bss + .noinit)


Finished building: sizedummy


zapis konsoli z programowania:




Launching C:\WinAVR-20100110\bin\avrdude -pm8 -cusbasp -Uflash:w:01_DiodaLED.hex:a
Output:

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.03s

avrdude: Device signature = 0x1e9307
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "01_DiodaLED.hex"
avrdude: input file 01_DiodaLED.hex auto detected as Intel Hex
avrdude: writing flash (98 bytes):

Writing | ################################################## | 100% 0.48s

avrdude: 98 bytes of flash written
avrdude: verifying flash memory against 01_DiodaLED.hex:
avrdude: load data flash data from input file 01_DiodaLED.hex:
avrdude: input file 01_DiodaLED.hex auto detected as Intel Hex
avrdude: input file 01_DiodaLED.hex contains 98 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.42s

avrdude: verifying ...
avrdude: 98 bytes of flash verified

avrdude done. Thank you.

avrdude finished



niby wszystko jest ok, a jednak nic nie działa. przypominam, że to nie wina sprzętu, ponieważ program z bascoma działa



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 maja 2012, o 10:56 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 paź 2011
Posty: 307
Lokalizacja: Lbt
Pomógł: 8

Zrób tak.
-załóż nowy workspace
-zrób nowy projekt c, nowy plik źródłowy
-wklep z klawiatury cały kod(nie kopiuj)
będzie działać. Nie wiem czego tak się dzieje, ale u mnie miałem to samo, że żaden program nie chciał działać, ale pomogło właśnie utworzenie nowego workspace.
Spróbuj też wcisnąć na plik nagłówkowy myszą jednoczeście trzymając ctrl(albo alt-nie pamiętam) i zobacz czy otworzy ci się w nowej karcie plik z nagłówkami.

_________________
Ujemna delta to dopiero początek zabawy...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 maja 2012, o 11:08 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27306
Lokalizacja: Szczecin
Pomógł: 1041

albo zrób jeszcze inaczej:

1. utwórz na dysku nowy workspace

2. zaimportuj do niego projekty z DVD

jak dokonać importu projektu ? Znajdziesz dokładnie to właśnie w jednej z lekcji video gdzie pokazuję krok po kroku jak importować projekty

po takim imporcie też wszystko będzie dobrze ;)


----------------

aha ale zaraz zaraz - może ty wytłumacz co to wg ciebie znaczy że program nie działa - bo być może tobie się wydaje że ona ma inaczej działać i oczekujesz czegoś innego

nadmienię że w tym projekcie masz dwa pliki main.c

z czego jeden jest wyłączony z kompilacji za pomocą opcji (też omawianej w lekcjach VIDEO) o nazwie "Exclude from build" więc można sobie odpalać i kompilować albo jeden albo drugi ale na pewno nie dwa naraz

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 maja 2012, o 11:49 
Offline
Użytkownik

Dołączył(a): 07 maja 2012
Posty: 119
Pomógł: 2

Na samym początku zabawy z eclipse, próbowałem sam napisać ten program, więc przepisywałem prosto z książki, ale pojawiło się wiele błędów, więc zacząłem używać gotowców. Męczę się już z tym od początku weekendu majowego, próbowałem na wiele sposobów, sprawdzałem dwie różne wersje eclipse, usunąłem zapis tylko do odczytu z workspace, importowałem pojedyncze pliki, cały czas nic nie działa. Napisałem po raz kolejny program od nowa, jak to radzi miszczo, (poniżej screen przepisanego programu) ale nadal nic, nie ma błędów, ale nadal nic nie działa, podam jeszcze nowe komunikaty z konsoli z kompilowania własnego programu:



budowanie:


**** Build of configuration Release for project led01 ****

make all
Invoking: Print Size
avr-size --format=avr --mcu=atmega8 led01.elf
AVR Memory Usage
----------------
Device: atmega8

Program: 88 bytes (1.1% Full)
(.text + .data + .bootloader)

Data: 0 bytes (0.0% Full)
(.data + .bss + .noinit)


Finished building: sizedummy




zapisywanie na uC:

Launching C:\WinAVR-20100110\bin\avrdude -pm8 -cusbasp -Pusb -Uflash:w:led01.hex:a
Output:

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.03s

avrdude: Device signature = 0x1e9307
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "led01.hex"
avrdude: input file led01.hex auto detected as Intel Hex
avrdude: writing flash (88 bytes):

Writing | ################################################## | 100% 0.44s

avrdude: 88 bytes of flash written
avrdude: verifying flash memory against led01.hex:
avrdude: load data flash data from input file led01.hex:
avrdude: input file led01.hex auto detected as Intel Hex
avrdude: input file led01.hex contains 88 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.38s

avrdude: verifying ...
avrdude: 88 bytes of flash verified

avrdude done. Thank you.

avrdude finished


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 maja 2012, o 11:55 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27306
Lokalizacja: Szczecin
Pomógł: 1041

No tak fajny program napisałeś - to nie dziwne że nie działa :(

#define LED_PIN (1<<PD7) -----> czyli ustawiasz pin PD7 jako wyjście

Kod:
DDRC |= LED_PIN;


ale jaki pin ? PD7 czy PC7 - przecież ATmega8 nie ma pinu PC7

a potem

Kod:
PORTC ^= LED_PIN;


więc ewidentnie mieszasz w kodzie teraz jak sam widzisz

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 maja 2012, o 12:28 
Offline
Użytkownik

Dołączył(a): 07 maja 2012
Posty: 119
Pomógł: 2

Wszystko ruszyło, dziękuję bardzo, teraz już tylko z górki będzie :D Myślałem, że to DDRC jest niezmiennne i zawsze trzeba pisać C na końcu :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 maja 2012, o 12:40 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27306
Lokalizacja: Szczecin
Pomógł: 1041

No to z górki .... na pazurki ;) - powodzenia

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 maja 2012, o 13:16 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

sosnus napisał(a):
Wszystko ruszyło, dziękuję bardzo, teraz już tylko z górki będzie :D Myślałem, że to DDRC jest niezmiennne i zawsze trzeba pisać C na końcu :D

No trudnie to jest wszystko na początku, ale...
Tu na blogu u Mirka jest taki fajny temat:
http://mirekk36.blogspot.com/2012/01/av ... stawy.html
Polecam sobie doczytać :D Warto.

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 maja 2012, o 09:43 
Offline
Użytkownik

Dołączył(a): 07 maja 2012
Posty: 119
Pomógł: 2

Niestety napotkałem na kolejny problem.
To jest program prosto z płyty, zmieniłem tylko używany procesor, LEDa z PC7 na PC2, oraz przycisk z PC6 na PC3
w tym przypadku (tak mi się wydaje) nie muszę zmieniać DDRC i PORTC, ponieważ led i przycisk nadal jest na C, teoretycznie wszystko powinno ruszyć, kompilacja znów przebiega pomyślnie, i oczywiście nic się nie dzieje.

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 maja 2012, o 11:37 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27306
Lokalizacja: Szczecin
Pomógł: 1041

No no - wszystko ładnie, zmieniłeś sobie procesor - cacuni ;) .... ale nawet nie zająknąłeś się żeby powiedzieć na jaki procesor zmieniłeś?

Tymczasem jeśli to jakaś 40-pinowa ATmega to pewnie na PORTC jest aktywny JTAG, którego nie wyłączyłeś w fusebitach no i klopsik ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 maja 2012, o 12:09 
Offline
Użytkownik

Dołączył(a): 07 maja 2012
Posty: 119
Pomógł: 2

"To jest program prosto z płyty, zmieniłem tylko używany procesor..." ten program z płyty ma ustawioną Atmegę32, a ja zmieniłem na Atmegę8



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 maja 2012, o 12:53 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27306
Lokalizacja: Szczecin
Pomógł: 1041

No to nie wiem co ci może nie działać :( - program jest OK - więc coś źle pewnie podłączasz ...

warto byłoby schemat pokazać jak to podłączasz

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 maja 2012, o 13:53 
Offline
Użytkownik

Dołączył(a): 07 maja 2012
Posty: 119
Pomógł: 2

Tego samego schematu używałem podczas prób z ledami, odłączyłem ledy (przypomnę że działało), a dodałem to, co jest zaznaczone na czerwono:

Obrazek



Ostatnio edytowano 9 maja 2012, o 15:19 przez sosnus, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 maja 2012, o 13:59 

Pomógł: 0

Na schemacie masz odwrotnie podłączone diodę i przełacznik niż to masz w kodzie.



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 9 maja 2012, o 14:02 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

A jak ma działać jak diodę masz podłączoną nie na ten pin co zdefiniowałeś w programie?

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 maja 2012, o 15:15 
Offline
Użytkownik

Dołączył(a): 07 maja 2012
Posty: 119
Pomógł: 2

Ajć, faktyczne źle narysowałem :oops: , już poprawiłem schemat z poprzedniego postu, ale problem jest nadal



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 maja 2012, o 20:34 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

schemat, schematem ale jak masz to teraz podłączone?

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 maja 2012, o 20:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

ja nie wiem jak zgadnąć co się dzieje ...

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



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: 32 ]  Przejdź na stronę 1, 2  Następna strona

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Bing [Bot] i 2 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