Początki z programowania...

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
spark
Użytkownik
Posty: 412
Rejestracja: 25 lis 2004, 15:50
Lokalizacja: Wrocław

Początki z programowania...

Post autor: spark » 06 lis 2005, 10:20

Witam wszystkich.

Nadeszła ta wiekopomna chwila kiedy to spróbuję zaprogramować mój pierwszy mikrokontroler 8) . Hehe a teraz na poważnie.
Jestem prawie zielony z programowania no a kiedyś trzeba zacząć spróbować zająć się tym jakże ciekawym a tyle sprawiającym radości, działem elektroniki.
Przechodzę do rzeczy:
Mam mikrokontroler typu P8031AH firmy Intel. Dokumentacja jest tutaj. Mam go od starego skanera, którego na marginesie dostałem od kolegi. Mikrokontroler calutki szczęśliwy bo obeszło się bez wylutowywania jego 40 pinów z płytki ponieważ miał już podstawkę ;).
I teraz takie mam pytania: czym i w jaki sposób go zaprogramować? Wiem, że w dokumentacji jest napisane ale niestety napisane dla "kumatych" w temacie. Czy program, z którego korzysta się w kursie C w EdW, może go zaprogramować? Czy można go w ogóle zaprogramować w języku C bo z tego co zauważyłem to jego I/O są ponumerowane Port 1.1 Port 2.1 a w AVR-kach jest Port B.1 Port D.1 itd. czy tak samo się programuje? Czy jest jakaś różnica?
Naprawdę dopiero zaczynam działać praktycznie dlatego proszę o wyrozumiałość i o pomoc.

Pozdrawiam.
ivanek_89

Passage
Użytkownik
Posty: 187
Rejestracja: 16 sie 2005, 22:46
Lokalizacja: Cambridge / UK
Kontakt:

Post autor: Passage » 06 lis 2005, 11:02

Witaj Ivanek!
Niestety nie ma możliwości zaprogramowania tego mikrokontrolera ponieważ nie ma on wewnętrznej pamięci programu. Musiałbyś dołączyć zewnętrzny eprom np 27C64. Polecam Ci zajzec do do EDW 8/97, tam jest projekt "Mikrokomputer edukacyjny z 8051 (8031)" autorem jest Pan Sławomir Surowiński który prowadził później kurs programowania w ASM. Moim zdaniem w dzisiejszych czasach nie warto zajmować się tym "dinozaurem" (jedynie do celów edukacyjnych). Lepszym mikrokontrolerem byłby 89C51/52 ale jeśli masz już coś kupić to lepiej wybrać coś z serii AVR ('9313, ATMEGA8 etc.) Po pierwsze wyjdzie taniej, a po drugie będzie wygodniej :)
Pozdrawiam.

Awatar użytkownika
gaweł
Użytkownik
Posty: 651
Rejestracja: 05 kwie 2004, 8:38
Lokalizacja: Białystok
Kontakt:

Post autor: gaweł » 06 lis 2005, 11:27

Do tego mogę ewentualnie dorzucić kilka słów "od kuchni". W przypadku zastosowania 89C51/51 powstaje problem zaprogramowania mikrokontrolera (czyli wbicia kodu programu do pamięci mikrokontrolera). Dla w/w 89C51 niezbędny jest programator. dla AVR istnieje możliwość programowania w układzie poprzez prosty interfejs szeregowy.Tu masz informacja na temat sposobów programowania: http://www.edw.com.pl/index.php?module= ... y&ceid=142 oraz tu na temat samego programatora: http://www.edw.com.pl/index.php?module= ... y&ceid=121

PS
Tego procka 8051 nie wyrzucaj, jest on do użycia, później napiszę ci jak go użyć.

Awatar użytkownika
radzio
Użytkownik
Posty: 573
Rejestracja: 07 gru 2004, 23:06
Lokalizacja: Sosnowiec
Kontakt:

Post autor: radzio » 06 lis 2005, 12:21

Ale przecież istnieją też 8051 programowane ISP, np 89S52 za kilka PLN. Chociaż faktycznie lepiej wziąć się już za AVR (a najlepiej znać zarówno 8051 jak i AVR).

Awatar użytkownika
gaweł
Użytkownik
Posty: 651
Rejestracja: 05 kwie 2004, 8:38
Lokalizacja: Białystok
Kontakt:

Post autor: gaweł » 06 lis 2005, 14:00

radzio pisze:Ale przecież istnieją też 8051 programowane ISP, np 89S52 za kilka PLN. Chociaż faktycznie lepiej wziąć się już za AVR (a najlepiej znać zarówno 8051 jak i AVR).
Wiadomo, że istnieją, sam używałem 89S53 w dużych ilościach, ale Ivanek ma konkretny procek 8051, oraz Passage proponował mu ewentualnie 89C51 lub nowszą rodzinę AVR. Sam się zastanawiałem nad taką sugestią dla Ivanka, by użyć jakiś model ISP z familii C51, ale jak już ma inwestować w naukę, to niech spróbuje zabawy a AVR'ami. AVR'y to większe moce obliczeniowe, większe możliwości i lepsze narzędzia do tworzenia softu. Nie znaczy, że stary dziadek 8051 jest spisany na straty i sugeruję, aby Ivanek schował do go szuflady. Być może nadejdą dla tego procka szczęśliwe dni. :mrgreen:

spark
Użytkownik
Posty: 412
Rejestracja: 25 lis 2004, 15:50
Lokalizacja: Wrocław

Post autor: spark » 07 lis 2005, 16:48

Witajcie wesoła gromadko :D,
Szkoda, że z tego 8131 nic nie będzie :(. Już się na niego napaliłem i przestudiowałem dokumentację a mała drobna tabelka na pierwszej stronie umknęła mi z przed nosa. (chodzi o ten program wewnętrzny ;)). Tak jak Gaweł radziłeś... schowałem go do szuflady. Tylko co chcesz z niego zrobić? Krzemową kolie :mrgreen:.

A więc tak, dziękuje opatrzności Bożej, że mój brat studiuje na politechnice Wrocławskiej i ma dostęp do "zaopatrzenia". Poprosiłem go, żeby zakupił jednego procesorka AT90S2313 (ale mi było żal tej dyszki, która była przeznaczona na impreze urodzinową w pizzerii :cry:, ale wmówiłęm sobie, że to inwestycja, która niedługo się zwróci także :lol: ) 8)

89C51 na razie niech się trzyma na uboczu.

Oprogramowanie już mam na komputerze. Pakier WinAVR oraz AVRStudio 4.11 według kursu C w EdW :D. (dziękuję Panie Radku za niego :wink: ).

Programator na stronce Taszy przestudiowałem i mam troszkę pytań ale to później.
Twój tekst jeszcze nie ale już to robię po napisaniu tego posta :P .

Teraz tak. Co potrzebuję, żeby włożyć do procesora program hello.c (kurs C - wiadomo 8) ). Pewno jak się domyślam programatora co :D.
Właśnie to mi się w nich podoba że można je łatwo zaprogramować. Kilka kabelków, garstka elementów i iiiiihaaaaa :lol: .

Więc co teraz? bo nie chce robić na domysły tylko jak wy mi mówicie.
Po prostu nie chcę zniszczyć szybko swojego pierwszego AVR-ka.

Pozdrawiam wesoła gromadko :wink:

Awatar użytkownika
gaweł
Użytkownik
Posty: 651
Rejestracja: 05 kwie 2004, 8:38
Lokalizacja: Białystok
Kontakt:

Post autor: gaweł » 07 lis 2005, 18:25

ivanek_89 pisze:Witajcie wesoła gromadko :D,
Szkoda, że z tego 8131 nic nie będzie :(. Już się na niego napaliłem i przestudiowałem dokumentację a mała drobna tabelka na pierwszej stronie umknęła mi z przed nosa. (chodzi o ten program wewnętrzny ;)). Tak jak Gaweł radziłeś... schowałem go do szuflady. Tylko co chcesz z niego zrobić? Krzemową kolie :mrgreen:.

A więc tak, dziękuje opatrzności Bożej, że mój brat studiuje na politechnice Wrocławskiej i ma dostęp do "zaopatrzenia". Poprosiłem go, żeby zakupił jednego procesorka AT90S2313 (ale mi było żal tej dyszki, która była przeznaczona na impreze urodzinową w pizzerii :cry:, ale wmówiłęm sobie, że to inwestycja, która niedługo się zwróci także :lol: ) 8)

89C51 na razie niech się trzyma na uboczu.

Oprogramowanie już mam na komputerze. Pakier WinAVR oraz AVRStudio 4.11 według kursu C w EdW :D. (dziękuję Panie Radku za niego :wink: ).

Programator na stronce Taszy przestudiowałem i mam troszkę pytań ale to później.
Twój tekst jeszcze nie ale już to robię po napisaniu tego posta :P .

Teraz tak. Co potrzebuję, żeby włożyć do procesora program hello.c (kurs C - wiadomo 8) ). Pewno jak się domyślam programatora co :D.
Właśnie to mi się w nich podoba że można je łatwo zaprogramować. Kilka kabelków, garstka elementów i iiiiihaaaaa :lol: .

Więc co teraz? bo nie chce robić na domysły tylko jak wy mi mówicie.
Po prostu nie chcę zniszczyć szybko swojego pierwszego AVR-ka.

Pozdrawiam wesoła gromadko :wink:
Widzę, że czytałeś coś na temat elektronicznej biżuterii ... :mrgreen: , ale ja pisząc abyś go schował do szuflady miałem na myśli użycie go zgodnym z jego przeznaczeniem. Chwilowo nie mam czasu na głębsze wywody, więc ... szuflada to chyba dobre miejsce.
Wracając do AVR'ków, to problem jest taki (zakładam, że masz zainstalowane odpowiednie oprogramowanie):
1. tworzysz program w wersji źródłowej za pomocą dowolnego edytora (wersja źródłowa, to taka wersja programu, którą ty napisałeś w jakimś języku),
2. za pomocą kompilatora (każdy język programowania ma swój kompilator) generowany jest kod programu, czyli program będący kompilatorem czytając twój program źródłowy tłumaczy zapisy z języka ludzi na kod maszynowy - język mikroprocesorów,
3. oczywiście jeżeli kompilator stwierdzi błędy w twoim programie, to kod binarny nie powstanie.
4. mając kod binarny, za pomocą programatora umieszcza się go w pamięci flash wewnątrz mikrokontrolera.

Powyższa technologia dotyczy wszystkich mikrokontrolerów i mikroprocesorów. Różnice wynukają jedynie w narzędziach jak kompilator, programator itp. W przypadku języków programowania to jeżeli piszesz w C, to z grubsza obowiązuje jeden język. Piszę 'z grubsza' ponieważ nie jest prawdą, że jeden język C pasuje do wszystkich mikrokontrolerów i zawsze są jakieś szczególikim króre je rozróżniają. Ale na etapie początkowym te problemy nie wystąpią.

Wojtek
Moderator
Posty: 2606
Rejestracja: 04 sie 2002, 19:00
Lokalizacja: --
Kontakt:

Post autor: Wojtek » 07 lis 2005, 18:29

ivanek_89 pisze:Oprogramowanie już mam na komputerze. Pakier WinAVR oraz AVRStudio 4.11 według kursu C w EdW
Jeśli coś mogę zasugerować - sciągnij sobie wersję AVR Studio 4.12 wtedy masz wszystko w jednym gdyż od wersji 4.12 w AVR Studio znowu jest wsparcie dla C.

Awatar użytkownika
gaweł
Użytkownik
Posty: 651
Rejestracja: 05 kwie 2004, 8:38
Lokalizacja: Białystok
Kontakt:

Post autor: gaweł » 07 lis 2005, 18:38

Zapomniałem dopisać o pewnej kwestii filofoficznej. Tak jak poisałem, kompilator tłumacząc twój program żródłowy na postać binarną analizuje tekst i wyłapuje błędy. Należy pamiętać, że te błędy dotyczą spraw jęztkowych, czyli zapisu. Jak kompilator zgłasza błąd, to znaczy, że zapis w programie zródłowym nie jest zgodny z regułami. Abyś przypadkiem nie potraktował, że jak kompilator nie znalazł błędów, to program jest dobry. Zawsze można formalnie poprawnymi zapisami kazać prockowy robić głupoty :mrgreen: . Jak napiszesz program, to dopiero różnymi metodani badawczymi można badać poprawność programu. Pamiętaj, że program z bezwzględną dokładnością wykona każde twoje polecenie, nawet te najgłupsze i nawet 'mu powieka nie drgnie'.

Wojtek
Moderator
Posty: 2606
Rejestracja: 04 sie 2002, 19:00
Lokalizacja: --
Kontakt:

Post autor: Wojtek » 07 lis 2005, 18:49

gaweł pisze:nawet te najgłupsze i nawet 'mu powieka nie drgnie'
:) - to mi się podoba :lol:

spark
Użytkownik
Posty: 412
Rejestracja: 25 lis 2004, 15:50
Lokalizacja: Wrocław

Post autor: spark » 08 lis 2005, 8:16

Czyli to co zrozumiałem.
Kompilatorem jest program zawierający się w pakiecie WinAVR right?
Program mam napisany, pliki źródłowe są.
Z tego co mi wiadomo to dla programatora jest potrzebny plik o rozszerzeniu *.hex right?
Potem buduje programałke Taszy i wrzucam kod źródłowy do pamięci programu.
Koniec kwesti.
Mamy zaprogramowany procek i wszyscy są happy :mrgreen:
Right? ;)

Co do programałki Taszy to tam jest taka kostka typu 74LS125, można ją zastąpić jakąś inną typu 74***? Bo mam w domu takiego starego tzw. "kadridża", bardzo starego i tam jest chyba 5 kostek tego typu tylko nie 125 :(. Jak będe w domu to napiszę jakie to są. (teraz siedzę na informatyce w szkole ;))
No to lece (\o/)

PS. Aha a co do AVRStudio 4.11 to preferuję tą wersję bo to z niej korzysta się w kursie C w EdW, a nowsze wersje mogą być troszkę inne, które sprawiałyby tylko i wyłącznie kłopoty.

Awatar użytkownika
gaweł
Użytkownik
Posty: 651
Rejestracja: 05 kwie 2004, 8:38
Lokalizacja: Białystok
Kontakt:

Post autor: gaweł » 08 lis 2005, 10:33

ivanek_89 pisze:Czyli to co zrozumiałem.
Kompilatorem jest program zawierający się w pakiecie WinAVR right?
Program mam napisany, pliki źródłowe są.
Z tego co mi wiadomo to dla programatora jest potrzebny plik o rozszerzeniu *.hex right?
Potem buduje programałke Taszy i wrzucam kod źródłowy do pamięci programu.
Koniec kwesti.
Mamy zaprogramowany procek i wszyscy są happy :mrgreen:
Right? ;)

Co do programałki Taszy to tam jest taka kostka typu 74LS125, można ją zastąpić jakąś inną typu 74***? Bo mam w domu takiego starego tzw. "kadridża", bardzo starego i tam jest chyba 5 kostek tego typu tylko nie 125 :(. Jak będe w domu to napiszę jakie to są. (teraz siedzę na informatyce w szkole ;))
No to lece (\o/)

PS. Aha a co do AVRStudio 4.11 to preferuję tą wersję bo to z niej korzysta się w kursie C w EdW, a nowsze wersje mogą być troszkę inne, które sprawiałyby tylko i wyłącznie kłopoty.
Dokładnie tak jest. Kod programu powstały w wyniku kompilacji jest zapisywany na dysku w jakimś formacjie. Popularnym standardem jest INTEL-HEX, który ma rozszerzenie HEX.
Zamiast 74xx125 być może da się zastosować 74xx244, jeden i drugi jest łącznikiem 3-stanowym. Trzeba by chwilkę popatrzyć na schemat Taszy, ale to ewentualnie wieczorem :mrgreen:

tasza
Użytkownik
Posty: 1391
Rejestracja: 21 lut 2005, 15:02

Post autor: tasza » 08 lis 2005, 11:12


spark
Użytkownik
Posty: 412
Rejestracja: 25 lis 2004, 15:50
Lokalizacja: Wrocław

Post autor: spark » 08 lis 2005, 16:30

Oto te układy z tego kadridża o którym mówiłem post wcześniej:
74LS32, 74LS161A, 74LS32, 74LS153, 74LS273P, 74LS04, 74LS08.
Da się coś z nich zrobić?
Jeszcze nawet nie wiem czym te kostki są ale zaraz poszukam dokumentacji.

Co do programowania to raczej wszystko już rozumiem.
Powiedzcie mi tylko czy można zastąpić kostkę z Taszy programatora na którąś z powyższych. Bo ani 244 ani 125 nie mam... a najbliższy sklep z częściami to Wrocław (38km.:roll:).

Dziękuje Tasza za linki może jednak upoluje tą kostkę, kiedyś...
A nie wiecie może gdzie są takie kostki stosowane. Poszukałbym gdzieś po znajomych i okolicznych punktach składowania rzeczy nieużytecznych (mówiąc wprost - po śmietnikach, prawda jest czasem brutalna :|).

Następna sprawa jest dość przykra. Tam gdzie zaopatruję się we Wrocku w częsci nie sprzedają programatorów :(. Nie wiem dlaczego ale koleś sprowadza je tylko gdy naprawdę jest popyt na nie. A widocznie takowego nie ma więc nie będzie sprowadzał jednego procka dla jakiegoś chłopaka z Brzegu prawda... :evil:.
Kolega z klasy mówił, że może jechać w tym tygodniu na giełde elektroniczną to popatrzy za nimi. Także nadzieja jeszcze jest.
A tak zaglądnełem sobie do spisu kostek jakie mam w domu i wylookałem tam takie oto skarby: 9002CAA TAIWAN MICROCHIP (18 pinów) i 93C46 ABI (8 pinów).
Nie jestem pewien tylko czy działają bo wszystkie z demontażu. Tego drugiego to nawet nie jestem pewny czy to mikrokontroler bo na pierwszym jak byk jest napisane, ale wnioskując z 93 - może... Jeszcze poszukam dokumentacji bo dopiero co komputer włączyłem.

No więc to raczej wszystko jak na razie. Będę teraz szukał tych klocków i zabierał się za programator.

Pozdrawiam Cieplutko
Darek

Awatar użytkownika
gaweł
Użytkownik
Posty: 651
Rejestracja: 05 kwie 2004, 8:38
Lokalizacja: Białystok
Kontakt:

Post autor: gaweł » 08 lis 2005, 16:38

ivanek_89 pisze:Oto te układy z tego kadridża o którym mówiłem post wcześniej:
74LS32, 74LS161A, 74LS32, 74LS153, 74LS273P, 74LS04, 74LS08.
Da się coś z nich zrobić?
Jeszcze nawet nie wiem czym te kostki są ale zaraz poszukam dokumentacji.

Co do programowania to raczej wszystko już rozumiem.
Powiedzcie mi tylko czy można zastąpić kostkę z Taszy programatora na którąś z powyższych. Bo ani 244 ani 125 nie mam... a najbliższy sklep z częściami to Wrocław (38km.:roll:).

Dziękuje Tasza za linki może jednak upoluje tą kostkę, kiedyś...
A nie wiecie może gdzie są takie kostki stosowane. Poszukałbym gdzieś po znajomych i okolicznych punktach składowania rzeczy nieużytecznych (mówiąc wprost - po śmietnikach, prawda jest czasem brutalna :|).

Następna sprawa jest dość przykra. Tam gdzie zaopatruję się we Wrocku w częsci nie sprzedają programatorów :(. Nie wiem dlaczego ale koleś sprowadza je tylko gdy naprawdę jest popyt na nie. A widocznie takowego nie ma więc nie będzie sprowadzał jednego procka dla jakiegoś chłopaka z Brzegu prawda... :evil:.
Kolega z klasy mówił, że może jechać w tym tygodniu na giełde elektroniczną to popatrzy za nimi. Także nadzieja jeszcze jest.
A tak zaglądnełem sobie do spisu kostek jakie mam w domu i wylookałem tam takie oto skarby: 9002CAA TAIWAN MICROCHIP (18 pinów) i 93C46 ABI (8 pinów).
Nie jestem pewien tylko czy działają bo wszystkie z demontażu. Tego drugiego to nawet nie jestem pewny czy to mikrokontroler bo na pierwszym jak byk jest napisane, ale wnioskując z 93 - może... Jeszcze poszukam dokumentacji bo dopiero co komputer włączyłem.

No więc to raczej wszystko jak na razie. Będę teraz szukał tych klocków i zabierał się za programator.

Pozdrawiam Cieplutko
Darek
74LS32 - bramki OR
74LS161A - licznik 4 bitowy
74LS153 - multiplekser
74LS273P - rejestr 8-bitowy
74LS04 - negatory logiczne
74LS08 - bramki AND
93C46 - EEPROM

Z tego to programatora nie zrobisz.
Napisałem ci na PW. Ewentualnie możesz odpisać na: an177@poczta.fm

ODPOWIEDZ