Mikroprocesory- Jaka książka?

Tu możemy wymieniać się swoimi opiniami na tematy książek i czasopism związanych z elektroniką oraz podawać interesujące adresy stron internetowych.
Fruttis
-
Posty: 6
Rejestracja: 10 lip 2009, 15:35
Lokalizacja: stąd

Post autor: Fruttis » 11 lip 2009, 10:24

Jeśli mikrokontrolery traktujesz jako hobby i jeszcze nigdy nie programowałeś, to nawet się nie zastanawiaj i wybierz bascom :smile: . Natomiast jeśli masz predyspozycje aby zostać inżynierem elektronikiem to bierz się od razu za C. Sam zacząłem od C, ale wynikało to raczej z przerostu moich ambicji. Nie żałuję, że się uczyłem C, ale z punktu widzenia korzyści jakie z tego osiągnąłem (jeśli chodzi o programowanie mikrokontrolerów) była to raczej strata czasu. :???:
Asembler to język niskiego poziomu, więc jego jako początkujący możesz sobie darować (przy czym bascom daje możliwość wplatania instrukcji asemblera w celu wygenerowania lepszego kodu, więc z czasem pewnie i tak go chociaż trochę poznasz).

snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 11 lip 2009, 12:13

Fruttis pisze:Jeśli mikrokontrolery traktujesz jako hobby i jeszcze nigdy nie programowałeś, to nawet się nie zastanawiaj i wybierz bascom :smile: . Natomiast jeśli masz predyspozycje aby zostać inżynierem elektronikiem to bierz się od razu za C

Dziwne podejście. Generalnie język C jest bardziej uniwersalny i kod daje się przenosić między różnymi rodzinami mikrokontrolerów. W Bascomie korzysta się z różnych gotowych funkcji natomiast w C trzeba je sobie samemu napisać. To jedyna różnica między tymi jezykami i wcale to nie znaczy że C jest trudniejsze od Bascoma czy Bascom od C. W assemblerze podobnie, z tym że w asemblerze można uzyskać krótsze czasy działania określonych części programu jak i całego programu.

Fruttis
-
Posty: 6
Rejestracja: 10 lip 2009, 15:35
Lokalizacja: stąd

Post autor: Fruttis » 11 lip 2009, 19:12

@ snow

Nie mieszaj ludziom w głowie. Wymieniłeś tylko nieliczne różnice między C a bascom'em. Właśnie po to został wynaleziony bascom aby ludzie nie musieli się uczyć przez rok czy dłużej C zanim napiszą swój pierwszy DZIAŁAJĄCY program (na µkontroler). Bascom jest o wiele łatwiejszy od C i dlatego zdecydowanie bardziej wskazany dla hobbystów. W sumie to tak wrzuciłeś te języki do jednej beczki jakbyś je znał tylko ze słyszenia (akurat asembler jest językiem niskiego poziomu i cholernie trudny do nauczenia, więc nijak się nie ma do tych dwóch pozostałych).

snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 11 lip 2009, 19:18

Fruttis pisze:aby ludzie nie musieli się uczyć przez rok czy dłużej C zanim napiszą swój pierwszy DZIAŁAJĄCY program (na µkontroler)
Pierwszy działający program można napisać w 30 minut (miganie diodą) siadając pierwszy raz od zera ;)
Fruttis pisze:W sumie to tak wrzuciłeś te języki do jednej beczki jakbyś je znał tylko ze słyszenia (akurat asembler jest językiem niskiego poziomu i cholernie trudny do nauczenia, więc nijak się nie ma do tych dwóch pozostałych).
Musisz mi uwierzyć że znam z praktyki. Wszystko jest kwestią potrzeby nauczenia się danego języka. Jak ktoś podchodzi do tematu z założeniem że coś jest cholernie trudne to się nigdy nie nauczy. Ja też odniosłem wrażenie że ty nigdy w C nie pisałeś a tylko słyszałeś że jest trudny i szkoda na niego czasu.

Jak ktoś sobie napisze funkcję w C:

Kod: Zaznacz cały

int adc(char wejscie)
{
....
}
i potem jej użyje:

Kod: Zaznacz cały

wynik=adc(0);
to czym to się niby od BASCOM'a ma różnić? Niczym ;)

Fruttis
-
Posty: 6
Rejestracja: 10 lip 2009, 15:35
Lokalizacja: stąd

Post autor: Fruttis » 11 lip 2009, 19:41

Skompiluj sobie to co napisałeś i wgraj do ATmegi8, to zobaczymy jak Ci zaświeci :grin:

A później jeszcze napisz mi program, który wyświetli "hello world" na LCD 2*16. Ciekawe czy po porównaniu kodów źródłowych nadal będziesz zdania, że nie ma prawie różnicy.

A do twojej wiadomości: uczyłem się C dwa miesiące i na peceta umiem pisać łatwe programy, ale jak napisac coś na atmege to allah raczy wiedzieć. Właśnie dlatego początkującym odradzam C.

snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 11 lip 2009, 20:20

Skompiluj sobie to co napisałeś i wgraj do ATmegi8, to zobaczymy jak Ci zaświeci :grin:
...
Fruttis pisze:A później jeszcze napisz mi program, który wyświetli "hello world" na LCD 2*16.
Proszę bardzo:

Kod: Zaznacz cały

#include <avr/io.h>
#include "lcd.h"


int main(void)
{

lcd_init(LCD_DISP_ON);
lcd_gotoxy(0,0);
lcd_puts("Hello world");

while(1)
{
  
}
return(0);
}
Fruttis pisze:ale jak napisac coś na atmege to allah raczy wiedzieć.
Tak właśnie myślałem ;)

Fruttis
-
Posty: 6
Rejestracja: 10 lip 2009, 15:35
Lokalizacja: stąd

Post autor: Fruttis » 12 lip 2009, 10:01

Tak jak myślałem. Kompilator wywalił mi masę błędów (zresztą już na pierwszy rzut oka widać że w tym twoim kodzie brakuje niektórych elementów). Więc jeszcze raz: NIE WCISKAJ LUDZIOM KITU, że C jest równie łatwe jak BASCOM.
W bascomie wystarczy wklepać:
Cls
LCD "hello world"
End
(przy czym wcześniej trzeba tylko w ustawieniach wybrać jaki ma być wyświetlacz i µk)

snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 12 lip 2009, 11:34

Bo nie masz plików lcd.h i lcd.c które należy dołączyć do projektu (podobnie jak w BASCOMie gdzie takie biblioteki są dołączane). Wywal z BASCOM'a bibliotekę do LCD i skompiluj swój kod - zobaczymy co zrobi twój BASCOM ;) (nie wiem czy wiesz że BASCOM posiada biblioteki?) Jak widzę dyskusja z tobą na temat różnic między C a BASCOM'em nie ma sensu bo nie masz pojęcia o pisaniu programów w C na AVR (o czym wspomniałeś wcześniej) zatem nie wiesz jak napisać program w C czyli twoje zdanie jest mało znaczące ;)

Swoją drogą ciekaw jestem co kolega Fruttis robi jak musi obsłużyć układ do którego nie ma bibliotek w Bascomie ;)

Fruttis
-
Posty: 6
Rejestracja: 10 lip 2009, 15:35
Lokalizacja: stąd

Post autor: Fruttis » 12 lip 2009, 16:34

Jeszcze raz dla wolniej myślących:
To jest wątek, w którym autor pyta jak zacząć przygodę z mikrokontrolerami, a nie wątek na temamt różnic między C a bascomem. Czyli która książka jest najbardziej odpowiednia dla kompletnie zielonych w materi programowania. Tak więc z czystym sumieniem poleciłem podręcznik o programowaniu w Bascomie, bo jest to język (środowisko programistyczne) wymyślone właśnie z myślą o osobach, które nie chcą wnikać w szczegóły co to są biblioteki, rejestry itp itd.
Sam kolego Snow własnie przyznałeś, że w bascomie mam wszystko gotowe i nie musze się bawić w dołączanie bibliotek (czyli że bascom jest prostszy w obsłudze). No ale zaraz pewnie znowu będziesz trollował, że między bascomem a C nie ma praktycznie różnicy.

"Swoją drogą ciekaw jestem co kolega Fruttis robi jak musi obsłużyć układ do którego nie ma bibliotek w Bascomie ;)"

Taka sytuacja nie będzie miała miejsca, bo uczę się na prostej płytce testowej (jak większość osób zaczynających przygodę z mikrokontrolerami) ...stąd nie muszę dołaczać bibliotek a tym bardziej nie potrzebne mi C.

snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 12 lip 2009, 16:54

Fruttis pisze:To jest wątek, w którym autor pyta jak zacząć przygodę z mikrokontrolerami, a nie wątek na temamt różnic między C a bascomem
Na poprzedniej stronie było pytanie o to czy C czy Bascom na początek.
Fruttis pisze:Sam kolego Snow własnie przyznałeś, że w bascomie mam wszystko gotowe i nie musze się bawić w dołączanie bibliotek (czyli że bascom jest prostszy w obsłudze)
Tak, masz wszystko gotowe a biblioteki dołączać musisz (dodajesz linie konfiguracyjne LCD). Zresztą są płatne kompilatory C które mają biblioteki.
Fruttis pisze:między bascomem a C nie ma praktycznie różnicy
Praktycznie nie ma. Mając biblioteki zarówno w C i Bascomie dość łatwo jest programować.

Na koniec tej bezsensownej dyskusji z kolegą który nie napisał nigdy programu w C na AVR (a wypowiada się jakie to C jest be i najlepiej trzymać się od niego z daleka) napiszę że obojętne od czego się zacznie. Jak się ma chęć zajmować dłużej warto zainteresować się C (darmowy kompilator, środowisko z symulatorem i obsługą JTAG). Język bardziej elastyczny, bardziej uniwersalny gdyż zarówno procesory 8,16 jak i 32 bitowe się da programować. Bascom generalnie jest dla procesorów 8bitowych. Najlepiej pisać w tym w czym się komuś piszę wygodnie. Poza tym jeśli ktoś zacznie od jednego języka i środowiska to trudniej jest się przestawić na coś innego.

Podsumowując ja polecam C.

Awatar użytkownika
DarkJarek
-
Posty: 44
Rejestracja: 21 mar 2006, 15:48
Lokalizacja: ...
Kontakt:

Post autor: DarkJarek » 12 lip 2009, 17:00

1. A jak się nauczy obsługiwać tą jedną płytkę to co dalej? Nie będzie umiał dołączać bibliotek i nie będzie się mógł rozwijać.
2. Bascom to nie język programowania, w Bascomie pisze się w Basicu, język stary jak świat i bardzo "rozwlekły"
3. Nie wydaje mi się, żeby twórcy Bascoma stawiali sobie za główny cel ukrycie przed użytkownikiem co to jest rejestr i jak dołączać biblioteki i jak by nie patrzeć informacja co to jest rejest nie jest szczegółem
4. Pomiędzy Basiciem a C jest kolosalna różnica, są to dwa zupełnie różne języki
5. Moja wypowiedź jest mocno subiektywna
6. Z literatury bardzo polecam kurs C z EdW, zrozumie go osoba która w życiu nie miała do czynienia z C.

ODPOWIEDZ