]Hi! Chiałem się zaprać za jakiś mikrokontroler. Czy jako początkujący mogę się zabrać za jakiś produkt Atmela (Przy okazji jaka jest różnica między 89Sxx, a 89Cxx). Czy można je programować w C++ Bardzo by mi na tym zależało. Z góry dzięki za odp. Borys85[/color]
eh, ile razy można wałkować ten sam temat?
C++ raczej odpada, większość producentów kompilatorów robi bardziej lub mniej zgodne z ANSI.
Na początek seria AT89Cxx wystarczy - są w miarę tanie i dostępne. Zresztą jak chcesz programować w C, to raczej weź jakiegoś RISC-a, to chyba trochę bardziej przyszłościowe rozwiązanie.
hehe
ja polecam 90S2313 a to z tego wzgledu ze juz sam programtor jest latwiejszy w wykonaniu i tanszy a przeciez to maja byc pierwsze kroczki w elektronice do tego bascom i kurs z edw programowanie ktory gdzies jest tu na elektrodzie i bedzie tak akurat
Kolega raczej chce pracować w C a nie w Basicu. A może zestaw AVR + AVR Studio + AVR GCC + programator STK200?
Oprogramowanie jest darmowe, a programator można zrobić na drutach.
Ja skoro moge to odpowiem na jedno pytanie
Roznica miedzy C51 a S51 jest mozliwosc programowania ISP (in system programing) w przypadku serii S. S ma chyba jeszcze dodanego Watchdoga ale nie jestem pewien. O innych roznicach nie wiem, niech mnie ktos uzupelni w razie czego
Skoro kolega pytal o '51 wiec moge polecic 89S51, nie trzeba zadnych "duzych" rownoleglych programatorow. Wystarczy kilka elementow biernych i programator AEC do ISP gotowy. Do tego oczywiscie rezonator kwarcowy, kondensatory i to co mikrokontroler potrzebuje do prawidlowej pracy.
Zgadzam się, że nie warto już chyba inwestować w procki programowane równolegle. Chyba, że szykuje się większą produkcję (procki z ISP są zazwyczaj trochę droższe niż ich odpowiedniki bez tej możliwości). Zresztą ostatnio nie tylko w mikrokontrolerach, ale również np. w układach PLD również ISP staje się coraz bardziej popularne.
Zanim wybierzesz już konkretną rodzinę, zorientuj się, jakie środowiska programistyczne będziesz miał do dyspozycji. Sam napalałem się już na różne proce, ale jak przychodziło do zorganizowania IDE, to sprawa już nie wyglądała tak różowo.
Hmm... Z tą różnicą to chyba tak nie jest... Gdzies w katalogach znalazłem AT89C55: "zawiera 20 Kbyte ISp Flash-EPROM". Reasumując: nadal nie znam różnicy??? :x Ktoś wie??? 8)
Ściągnij sobie parę *.pdf z Atmela i sam zobaczysz różnice w tych prockach. Nie musisz się zbytnio na początek zagłębiać w te pliki. Wszystko co najważniejsze jest na pierwszej stronie.
Dzięki... Teraz mam pytanie: Mam dwa schematy programatora dla AT89Sxx: Jeden z PE 4/99 (w sumie 6 scalaków), drugi 8 rezystorów i ULN 2803 (darlinktony). Chciałbym poznać opinię osoby, która korzystała z obu (ewentualnie z jednego).
Najprostszy programator mozna zrobic dla Atmela 89S8252. "Na sieci" jest ich mnóstwo (darmowe oprogramowanie itp.) a sam programator składa sie w najprostszej wersji z wtyczki LPT, kwarcu, 2 kondnsatorow 33pF. kabelka i układu zasilania. Bardziej rozbudowana zawiera bufory zabezpieczajace port drukarki Aha, według mnie 89S8252 to jeden z najlepszych dla początkującego elektronika procków: 8k Flash'a, 2k wewn. EEPROMu, 256 RAM, 32 I/O i oczywiście możliwość programowania w układzie (ISP).
To są dwa modele 89c2051 i 89s2051 ?? I czym się różnią 89c2051 od 89c51??
nie ma 89s2051 2051 i 51 różnią się ilością portów i drobnymi szczegółami których nie wykorzystasz na początku, nawet nie zauważysz
s różni sie od c tym że dodatkowo ma ISP-możliwość programowania w systemie bez potrzeby wyciągania procka
bascom charakteryzuje sie latwoscia programowania o ile w asemblerze musisz dobrze znac budowe procka to w bascomie az taka duza wiedza nie jest potrzebna <co moze jednak nie jest az takim duzym plusem >chac np uruchomic licznik w asemblerze trzeba wpisac odpowiednie stany w odpowiednie rejestry natomiast w bascomie zalatwiaja to wpisane komendy <basic > i program staje sie bardziej przejzysty i zrozumialy dla poczatkujacego
np: <z polskiego helpa>
Przykład:
'Na początku musisz skonfigurować pracę licznika Timer0, by pracował
'jako licznik lub czasomierz
'Skonfigurujemy go sobie jako licznik. Na początek
'Musisz także określić czy zmiana stanu licznika ma się odbywać po
'stwierdzeniu narastającego lub opadającego zbocza
Config Timer0 = Counter , Edge = Rising
'Config Timer0 = Counter , Edge = falling
'usuń komentarz w powyższej linii by zmianna następowała wraz z
'opadającym zboczem.
'By odczytać lub zapisać dane do licznika użyjemy specjalnej zmiennej
'systemowej
'najpierw ją zerujemy
Tcnt0 = 0
Do
Print Tcnt0
Loop Until Tcnt0 >= 10
'po zliczeniu 10 impulsów program przestanie drukować stan licznika
'Teraz skonfigurujmy go jako czasomierz
'Sygnałem wejściowym w tym przypadku będzie przebieg zegarowy
'podzielony w preskalerze przez 8,64,256 lub 1024
'parametr Prescale akceptuje tylko poniższe dane: 1,8,64,256 lub 1024
Config Timer0 = Timer , Prescale = 1
'Licznik jest teraz uruchamiany automatycznie
'możesz go jednak zatrzymać w dowolnej chwili, o tak:
Stop Timer0
'Teraz licznik jest zatrzymany
'by wznowić działanie licznika użyjemy:
Start Timer0
'znowu możemy odczytywać zawartość licznika
Print Tcnt0
'kiedy licznik się przepełni, ustawiona zostanie flaga TOV0 w
'rejestrze TIFR (będzie miała stan 1 logicznej)
'Można użyć poniższej instrukcji do wywoływania procedury obsługi przerwania licznika.
Set Tifr.1
'Poniższy fragment pokaże jak używać licznika TIMER0 do generowania
'przerwań zegarowych
'Fragment ten jest umieszczony w bloku komentarza '( ')
'(
'konfigurujemy licznik by używał podzielnika 1024
Config Timer0 = Timer , Prescale = 1024
'Define the ISR handler
On Ovf0 Tim0_Isr
'możesz także użyć TIMER0 jako OVF0, jest to to samo
Do
'twój program będzie tutaj
Loop
'poniższy kod będzie wykonany gdy licznik się przepełni
Tim0_Isr:
Print "*";
Return
hakerek1989 Taki kurs jest na stronie www.ep.com.pl tylko jest on bardzo "ciężki" (kilkadziesiąt MB).
Przepraszam za wprowadzenie w błąd. Ten kurs to był, ale już go nie ma.
Obejżyj sobie post pod linkiem
https://www.elektroda.pl/rtvforum/topic136552.html Tam są informacje na interesujący Ciebie temat.