Bascom a może C


Mam pytanie do użytkowników forum.Myślę,że dość dobrze poznałem Bascom-a.Pytanie,czy chcąc dalej się rozwijać zajmować się językiem C czy nie.Proszę o subiektywne opinie.Ewentualnie co więcej mogę zrobić w C (a może miej).Lub jeśli tak od czego zacząć.




Portret użytkownika kaktus

chymm

Piszesz

Quote:
Myślę,że dość dobrze poznałem Bascom-a

a ja zapytam: a jak dobrze poznałeś uC?

Język programowania to jedno, a wykorzystanie jego możliwości to zupełnie inna sprawa, a biegła znajomość sprzętu (uC) to podstawa i tutaj rzecz wynika tylko i wyłączenie ze znajomości samych uC.
Przecież w bascom-ie nie musisz korzystać z możliwości poleceń konfiguracyjnych i możesz wszystko sam ustawiać na odpowiednich rejestrach, gdy posiądziesz tą umiejętność - na tyle poznasz uC, wtedy się przesiadaj.

Zupełnie inną umiejętnością jest pisanie zwartych i optymalnych kodów. Dobrze jest wiedzieć że ten sam kawałek programu napisany w różnoraki sposób bardziej lub mniej wykorzystuje/zamęcza uC, i generuje inną wielkość kodu do pamięci programu - zwróciłeś na to kiedyś uwagę używając bascom?

Jeżeli ktoś myśli że C zrobi to wszystko samo za niego, to jest w bardzo dużym błędzie, tak samo jak bascom jest to tylko narzędzie w ręku konstruktora.

Na temat jakości narzędzi każdy wie sporo, jedne lepsze, bardziej precyzyjnie wykonane o lepszej trwałości ale droższe, dla profesjonalisty wskazane dla amatora zbędne. Zawsze jest to kwestia wyboru.

Jeśli chcesz sobie dobrze radzić w C musisz mieć sporą wiedzę teoretyczną na temat ?C którym chcesz się zająć, nie znaczy to że przy bascom nie trzeba. Dla przykładu jeśli chcesz w bascom skonfigurować timer dobrze jest wiedzieć co i jak, ale bascom większość zrobi za Ciebie gdy posłużysz się poleceniem config timer, ze stosownymi parametrami - w C musisz PRAWIDŁOWO sam skonfigurować stosowne rejesrty.

I do tego właśnie zmierzam.
Również nic nie stoi na przeszkodzie aby i w bascom samodzielnie "przejąć kontrolę" nad konfiguracją sprzętu i nie korzystać z "gotowców" i ułatwień bascom.

Próbowałeś kiedyś tak?

Dodatkowo uważam że każdy język programowania jest na tyle dobry na ile sobie z nim potrafi poradzić/okiełznąć programista.
Tak jak pisałem o narzędziach, hehe miałem łopatę przez 20 lat się nią posługiwałem i byłem zadowolony, raz syn z niej korzystał i powiedział, że jest do bani bo mu się połamała ;-)
Też siedzę w bascom nie uważam się za zaawansowanego, ostatnio zmajstrowałem takie coś
Na dziś dzień pomimo tego że cała pamięć programu była już wtedy wykorzystana układ umie więcej. Mogę wyłączyć czujkę PIR (dwa x klik), i jak wcześniej jest sterowania ręczne (1x klik), procedury bascom inicjalizująco/zerujące przy starcie uC są aktywne jak dobrze pamiętam.

kaktus

-

"Cierpliwym być musisz, by wiedzę zgłębiać tajemną, gdyż ciemna strona mocy niszczącą i silną jest.".

Portret użytkownika glecki

Kolego Kaktus Oczywiście masz

Kolego Kaktus
Oczywiście masz rację.Przyznam,że Bascom był dla mnie wyzwaniem i od tamtego roku regularnie z nim walczyłem(może się go uczyłem). Przyszło mi do głowy zastosować coś więcej w swoich projektach jak Atmega i pomyślałem o Xmega.Z czystej próżności:jeśli coś nowszego to musi być lepsze.Zaznaczam,że głownie chce się rozwijać.Nie chodzi o pracę czy coś podobnego.Dlatego pomyślałem o C.Trudniej,ale mogę więcej to jest moje motto.

-

Grzegorz

Portret użytkownika kaktus

Trudniej chyba nie

Bardziej wyzywająco jak dla mnie, no i oczywiście nie masz ograniczenia w kodzie programu, zważywszy na typ uC który Cię zainteresował.
Bardzo wydajny mikrokontroler Cię zainteresował, ciekawe bardziej jako "nieznane" czy miałbyś dla niego dużo "roboty" (-;

To drugie jest już bardzo istotne, bo na przykład jeśli by się chciało jakieś poważniejsze "peryferia" zastosować, np kartę pamięci lub interfejs ethernet i dużo dużo innych, też ciekawych, to bez robienia sobie kosztów droga jest otwarta. A przy bascom demo projekty te są raczej nieosiągalne.

Mogę polecić książkę Mirosława Kardasia związaną z programowaniem uC w C - Mikrokontrolery AVR język C podstawy programowania.
To co jest moim zdaniem istotne, to to, że autor przedstawia "specyficzny" styl programowania/postępowania, który jest bardzo pozytywny w szerokim słowa znaczeniu, i wnosi dużo dobrego.

Też jestem amatorem z pasją.

Żeby było ciekawiej zrób jakiś "zaawansowany" projekt na małym uC - wtedy się będziesz bardziej rozwijał jak się "napocisz solidnie" i nagłówkujesz, ale to tylko moje zdanie. ((-;

Z ciekawości zapytam, czy masz możliwość się pochwalić jakimś fajnym projektem swoim od początku do końca.
Piszesz

Quote:
Bascom był dla mnie wyzwaniem
, dla mnie wyzwaniem jet bardziej to co mogę dzięki niemu zrobić. Choć szczerze mówiąc o C też od pewnego czasu myślę, ale pod kątem tego że nie mam ograniczenia kodu wynikowego, oraz mam nadzieję że być może uda mi się napisać kod i "upchnąć" wszystkie zadania które "nie mieściły" się gdy były w bascom.
Pewno kiedyś się tego dowiem. (-;

kaktus

-

"Cierpliwym być musisz, by wiedzę zgłębiać tajemną, gdyż ciemna strona mocy niszczącą i silną jest.".

Portret użytkownika glecki

Xmega i C

Kolego
Czy będę miał dla niego robotę,to się okaże jak go poznam.
Pisząc,o poznawaniu Bascoma mam na myśli również poznawanie procesora dla którego piszę program.Dla mnie jest to jedna całość.
Jeśli chodzi o moje projekty w tej chwili piszę program do obsługi kotła CO na węgiel.Mam napisane od podstaw czteropoziomowe menu,trzy czujniki DS18B20 (docelowo ma ich być 7),moduł RTC Tiny wraz z EEPROMEM komunikującym się po I2C.Zegar działa,temperatura działa,menu ustawiane temperatury działa.Na boku mam napisany program do obsługi EEPROM po I2C który także działa.
Pisząc i ucząc się danych funkcji,obsługi poszczególnych elementów piszę mały program "na boku",a potem jeśli go rozumiem i działa poprawnie wstawiam go do dużego głównego programu.
Dodatkowo projektuję układ łagodnego startu do piły Metabo.Ponieważ jest to nowe urządzenie (na gwarancji),nie mogę ingerować w wnętrze.Wstępne próby wypadły pomyślnie.
Polecając książkę rozumiem,że ją przeczytałeś.Jakie pierwsze wrażenia jeśli chodzi o różnicę pomiędzy Bascom a C? Czy znajomość Bascoma pomoże w zrozumieniu C,a może będzie przeszkadzać.

-

Grzegorz

Portret użytkownika kaktus

Grzegorzu ciekawe rzeczy

Grzegorzu ciekawe rzeczy robisz.
Szkoda że tutaj nie ma prywatnych wiadomości.

Ten sterownik CO steruje przedmuchami? Jeśli tak to czy w jakiś sposób sprawdzasz/monitorujesz obecność lub pracę wentylatora?
Zegar RTC pewno masz z podtrzymaniem bateryjnym, tu chciałbym zaznaczyć. że te układy mają "trochę" pamięci do zagospodarowania (powiedzmy kilka komórek) i można z niej korzystać podobnie jak z EEPROM, o ile się pomieści to co potrzebujesz przechować. Z zasady uC ma większy EEPROM, niż RTC RAM dla użytkownika. To tylko sugestia.

Co do książki tak jestem właścicielem jednego egzemplarza. Pytasz o moje zdanie w różnicy pomiędzy C a Bascom, chymm. Powiem tak C poznawałem z dwadzieścia lat temu, i szkoda że zaprzestałem pielęgnacji tej "sztuki", od tamtego czasu zero kontaktu. Tak że nie jestem jakimś biegłym żeby się na ten temat wypowiadać, ale mogę powiedzieć co myślę. Dla mnie C jako język programowania ma większe możliwości pod względem tworzenia kodu, jest bardziej "elastyczny", przez co składnia może być bardziej zawikłana (to już zależy od budującego kod). Natomiast czy C przeszkadza Bascom-owi, lub na odwrót - moim zdaniem nie. To też jest sprawą indywidualnego podejścia. Więcej nic nie powiem bo nie napisałem ani jednego programu w C dla mikrokontrolera. Ale pewno za jakiś czas się to zmieni, bo tak jak pisałem wcześniej, ciekawi mnie, czy budując ten sam kod w Bascom i C będzie różnica w objętości binarki. Naczytałem się na ten temat, różnych mniej lub bardziej wiarygodnych wypowiedzi i trzeba by to zweryfikować.

-

"Cierpliwym być musisz, by wiedzę zgłębiać tajemną, gdyż ciemna strona mocy niszczącą i silną jest.".

Portret użytkownika glecki

Sterownik będzie sterował

Sterownik będzie sterował przedmuchami.Pracy dmuchawy nie chcę monitorować,nawet o tym nie myślałem.Uszkodzenie wentylatora nie jest groźne,piec się po prostu wychłodzi a do tego będę miał funkcję alarmu typu "minął określony czas a piec nie uzyskał żądanej temperatury".Bardziej skupiam się na jakimś podwójnym zabezpieczeniu temperatury maksymalnej pieca.W przypadku uszkodzenia DS-a to może być groźne.Będę sprawdzał czy DS odpowiada w określonych odstępach czasowych i pewnie zamontuję jeszcze jeden dla pewności i będę porównywał ich wartości.
Jeśli chodzi o nadmuch pieca wpadłem na inny pomysł.Mam piec z wentylatorem który ma klapkę powietrza zamykaną grawitacyjnie a otwieraną podmuchem powietrza z wentylatora.Chcę zrobić tak:klapka otwierana silnikiem (prawdopodobnie krokowym),a w przypadku gdy upłynie określony czas i temperatura zadana nie zostanie osiągnięta lub wzrasta zbyt wolno będzie się powoli załączał wentylator sterowany przez PWM.Jest to podyktowane tym,że w nocy gdy jest cisza w domu praca wentylatora trochę przeszkadza,do tego jakaś mała oszczędność energii elektrycznej.
Doszedłem do wniosku,że dobrze by było mieć w mieszkaniu podgląd na parametry pracy pieca.Wymyśliłem dodatkowy układ z LCD (Atmega8),komunikujący się z głównym układem po RS-232.Atmega162 wysyła dane do Atmegi8, a ta wyświetla to na swoim LCD.Myślę o dołożeniu dwóch alarmów w module mieszkania:brak opału i za wysoka temperatura pieca.W sobotę zaprogramowałem,uruchomiłem i wszystko działa OK.Miałem trochę kłopot z "krzaczkami" które wyświetlały się przed odbieranymi danymi,ale udało się je usunąć z LCD za pomocą polecenia MID.
Moduł RTC to oryginalnie zmontowany układ (Tiny RTC).Ma on zamontowane DS1307,zasilanie bateryjne i dodatkowo pamięć EEPROM 24C32 komunikującą się po I2C.Ucząc się zapisu do DS1307 oczywiście przy okazji nauczyłem się zapisu dodatkowych parametrów oprócz daty i czasu.Także,zapis do EEPROM po I2C przetestowałem,a kwestia jak i w jakim stopniu to wykorzystam pozostaje otwarta.
Książka polecana przez Ciebie kupiona.Myślę,że dostanę ją we wtorek.Na razie zrezygnowałem z zakupu modułu z Xmegą.Postanowiłem,że na razie poduczę się C,potestuję na Atmegach a potem się zobaczy.

-

Grzegorz

Portret użytkownika kaktus

Czujniki temperatury podpiął

Czujniki temperatury podpiął bym na dobrej jakości kablach silikonowych , bo tak sobie myślę że prędzej się coś by mogło stać z kabelkami niż z czujnikiem.
Do komunikacji na odległość mógłbym zarekomendować moduły radiowe NRF24L01+. U "przyjaciół z dalekiego wschodu" można je zakupić dosłownie za parę złotych. Mnie oczarowały, choć z braku czasu nie rozgryzłem ich dotąd, ale pobawiłem się i potestowałem na przykładach znalezionych w internecie. Wymiana danych działała mi przez dwie ściany konstrukcyjne i jeszcze około 20m w otwartym terenie. Pewno niedługo sprawdzę jak u mnie będzie to wyglądało w pionie - piwnica i moja kanciapa na pierwszym piętrze.
Wracając do książki, moja żonka zakupiła mi ją bezpośrednio u Pana Mirka i uzyskała jeszcze dobry rabat. ((-;

Chętnie zawrę z Tobą znajomość gg 2393063.

-

"Cierpliwym być musisz, by wiedzę zgłębiać tajemną, gdyż ciemna strona mocy niszczącą i silną jest.".

Portret użytkownika glecki

Dobre przewody do

Dobre przewody do czujników,oczywiście tak.Ale,jednak czujnik to elektronika i czasem może "paść".Układ CO mam wykonany z rurek Alupex (czy coś takiego),a doprowadzenie wody o temperaturze powyżej 80 stopni może je uszkodzić.Wolę nie myśleć o ewentualnych kosztach naprawy instalacji.
Moduł radiowy polecany przez Ciebie to ciekawa propozycja.Choć czytałem,że gdy pracuje na paśmie zbliżonych do kanałów Wi-Fi występuje sporo błędów.Ale,oczywiście po własnych testach będę mógł coś konkretnego napisać.Myślę,że moduł znajdzie zastosowanie w innych projektach,tym bardziej,że rzeczywiście cena jest banalna.
Jednak,głównie ze względu na zasilanie układu wyświetlającego w mieszkaniu położę przewód.
Dostałem dziś inną książkę o C którą kupiłem wcześniej.Zacząłem czytać i od razu testować.Zastanawiam się,czy polecenia z Bascoma nie będą mi się mieszać z C.Jednak trochę się od siebie różnią.Czas pokaże.
Podałeś swoje GG,ja niestety nie mam.Jestem takim trochę archaicznym użytkownikiem Internetu.A jeśli będziesz w pobliżu Rzeszowa oczywiście zapraszam do siebie.Jak to się mówi,wal jak w dym.

-

Grzegorz