Elektroda.pl
Elektroda.pl
X
flexghzflexghz
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Prosty generator PWM (ATtiny25)

RomanWorkshop 06 Gru 2019 13:23 3918 32
  • Prosty generator PWM (ATtiny25) Prosty generator PWM (ATtiny25) Prosty generator PWM (ATtiny25)

    Prosty generator PWM (Pulse-Width Modulation) zbudowany na mikrokontrolerze ATtiny25/45/85, zasilany stabilizowanym napięciem Vcc=2.7-5.5V (2.4-5.5V jeśli użyjemy ATtiny25V/45V/85V). Na jego wyjściu uzyskuje się sygnał prostokątny o wybranej, stałej częstotliwości 1.25/2.5/5/10/20/40/80 kHz oraz wypełnieniu regulowanym w zakresie 0-100%, z krokiem co 1%. Program sterujący napisałem w asemblerze i jest on identyczny dla każdego z wymienionych mikrokontrolerów.

    Po włączeniu zasilania na wyjściu generatora (złącze CON2), uzyskuje się sygnał prostokątny o częstotliwości 10 kHz, wypełnieniu 50% i poziomie zależnym od wartości napięcia zasilania Vcc. Aby zmniejszyć/zwiększyć wypełnienie sygnału o 1%, należy krótko (poniżej 250ms) nacisnąć przycisk (mikrostyk) S1 (-)/S2 (+). Naciśnięcie i dłuższe przytrzymanie wciśniętego przycisku S1/S2, spowoduje ciągłe zmniejszanie/zwiększanie wartości wypełnienia z szybkością ok. 4%/s, aż do osiągnięcia wartości granicznej, czyli odpowiednio 0%/100%. Ustawienie wypełnienia o wartości 0%/100%, wymusi ciągły niski/wysoki stan logiczny (GND/Vcc) na wyjściu generatora.

    Aby zmienić częstotliwość sygnału, należy krótko (poniżej 1s) nacisnąć jednocześnie obydwa przyciski S1 i S2. Wtedy częstotliwość zmieni wartość na następną w kolejności: 10/20/40/80/1.25/2.5/5 kHz i tak w kółko. Naciśnięcie i dłuższe przytrzymanie wciśniętych jednocześnie przycisków S1 i S2, spowoduje ciągłe zmienianie wartości częstotliwości z szybkością ok. 1x/s, aż do puszczenia przycisków. Po każdej zmianie częstotliwości, początkowa wartość wypełnienia sygnału wynosi zawsze 50% (niezależnie od wcześniejszego ustawienia).

    Tranzystor T1 (MOSFET-P) zabezpiecza układ przed odwrotnym podłączeniem polaryzacji napięcia zasilania. Specjalnie został wybrany model Si2305, który zaczyna przewodzić już przy napięciu bramki Vgs=1.8V - ma to znaczenie, jeśli układ będzie zasilany niskim napięciem (np. 2.7V). Jako zamienników T1 można użyć, m.in. następujących tranzystorów: DMP1045, FDN306, Si2315, IRLML6401. W przypadku braku odpowiedniego tranzystora można zrezygnować z tego zabezpieczenia - wtedy trzeba zewrzeć pola lutownicze "D" i "S" w miejscu obudowy SOT-23.

    Rezonator kwarcowy X1 taktuje pracę mikrokontrolera, dzięki czemu na wyjściu uzyskuje się sygnał o dość dokładnej i stabilnej częstotliwości. Istnieje też możliwość taktowania mikrokontrolera jego wewnętrznym oscylatorem RC, o nominalnej częstotliwości 8 MHz. Zaletą tego rozwiązania jest to, że nie trzeba wtedy montować rezonatora X1 i kondensatorów C3/C4, ale dużą wadą jest niedokładna i bardzo niestabilna częstotliwość sygnału wyjściowego. Kondensatory C1 i C2 filtrują napięcie zasilania. Rezystor R2 ogranicza prąd pobierany bezpośrednio z pinu PB1 mikrokontrolera - zapobiega jego uszkodzeniu w przypadku zwarcia wyjścia CON2.

    Przy programowaniu, należy pamiętać o odpowiednim ustawieniu fuse/lock bitów:
    1. Gdy mikrokontroler będzie taktowany rezonatorem kwarcowym X1:
    FL (Fuse Low): $FF, FH (Fuse High): $DF, FE (Fuse Extended): $FF, LB (Lock Bits): $FF.
    2. Gdy mikrokontroler będzie taktowany wewnętrznym oscylatorem RC:
    FL (Fuse Low): $E2, FH (Fuse High): $DF, FE (Fuse Extended): $FF, LB (Lock Bits): $FF.

    Generator można zasilać napięciem stałym Vcc=2.7(2.4)-5.5V z zasilacza lub z baterii/akumulatorów (np. z jednego ogniwa typu 18650). Pobór prądu przy napięciu Vcc=2.7/5V wynosi maksymalnie 2.5/5 mA (sygnał 80kHz/99%, wyjście generatora nie obciążone). Generator zmontowałem na płytce jednostronnej o wymiarach 40x40 mm, wykonanej metodą transferu chemicznego.

    Dołączone archiwum zawiera: schemat w Eagle, płytkę w DipTrace, źródło, wsad oraz dokumentację w PDF. Strona projektu: Link.
    PWMtiny.7z Download (134.88 kB)

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    RomanWorkshop
    Poziom 11  
    Offline 
    RomanWorkshop napisał 102 postów o ocenie 121, pomógł 0 razy. Jest z nami od 2013 roku.
  • flexghzflexghz
  • #3
    excray
    Poziom 39  
    Kod: avrasm
    Zaloguj się, aby zobaczyć kod


    A nie lepiej by było:
    Kod: avrasm
    Zaloguj się, aby zobaczyć kod

    Jakby czytelniej... Oczywiście dotyczy to wszystkich miejsc w kodzie gdzie odwołujesz się do bitów i rejestrów. W końcu, jak już dołączyłeś definicje to warto z nich korzystać. A tak w ogóle, to super i fajnie, że ktoś jeszcze coś tam klika w asemblerze.
  • flexghzflexghz
  • #4
    Urgon
    Poziom 36  
    AVE...

    Bardzo ładne wykonanie. Ale, jak zawsze, jest jakieś "ale", a raczej sugestie i pytania:
    1. Dobrze jest dać między wyjście PWM a mikrokontroler jakiś bufor na tranzystorze lub prosty wzmacniacz pracujący w klasie AB. W razie czego ochroni to mikrokontroler przed uszkodzeniem.
    2. Więcej kroków regulacji częstotliwości też by się przydało. Jeśli zamierzasz rozbudować projekt, to sugerowałbym większy mukrokontroler ze sprzętowym PWM do SMPS, byś miał 2/4 kanaly i regulację czasu martwego.
    3. Dlaczego ASM? Kod w C jest wystarczająco optymalny, a przy tym znacznie czytelniejszy...
  • #6
    RomanWorkshop
    Poziom 11  
    Cytat:
    Jaka jest głębia bitowa modulacji ?
    Jeśli chodzi o rozdzielczość regulacji wypełnienia, to wynosi ona 99 kroków (7-bitów). Licznik zlicza od 0 do 99, stąd częstotliwość taktująca mikrokontroler jest dzielona przez 100.

    Cytat:
    A nie lepiej by było...
    Optymalizuję również rozmiar kodu źródłowego ;)

    Cytat:
    3. Dlaczego ASM?
    Asembler to jedyny język w jakim programuję mikrokontrolery. Do tak prostych projektów jest idealny, a i większe też można zrobić. Nie mam żadnego środowiska do tworzenia programów w C.

    Cytat:
    Rozszerzyłbym zakres regulacji wypełnienia do 0..100%.
    Początkowo tak miało być, ale uznałem że jeśli będę potrzebował 0/100% to sobie podłączę masę/plus zasilania. Jednak faktycznie w niektórych przypadkach może się to przydać.
  • #8
    RomanWorkshop
    Poziom 11  
    Cytat:
    Ale słyszałeś o AVRStudio?

    Tak, jak najbardziej słyszałem i mam pobrane, ale nie zainstalowane AVR Studio, WinAVR oraz AVR-GCC. Póki co, moje proste projekty nie wymagały pisania w języku C. Wolę asembler, bo daje pełną kontrolę nad wszystkim, no i jestem pewien, że mało kto zrozumie/zmodyfikuje mój kod bez wnikliwego przestudiowania jego działania ;)
  • #9
    krisRaba
    Poziom 29  
    Fajny projekcik. Możliwość dojścia do 100% przydaje się np. do testowania obwodów wyjściowych z bootstrapem ;) Szybko wtedy można zobaczyć jakiego fikołka robi stopień mocy :lol: Kiedyś zapomniałem uwzględnić margines bezpieczeństwa u góry i zdziwiłem się co ten silnik robi pomimo wysterowania na 100% :lol: Potem facepalm w czółko, korekta i wszystko gitara ;)
    Ale pokazuje to, że czasami brak pełnego zakresu nie pokaże nam wszystkich zjawisk ;)
  • #10
    excray
    Poziom 39  
    RomanWorkshop napisał:
    Optymalizuję również rozmiar kodu źródłowego

    Ale kosztem znacznego utrudniania sobie życia. Same wady takiego rozwiązania, zalet brak. Po pierwsze sam sobie utrudniasz analizę swojego kodu. Po drugie przenoszenie kodu na inny procek jest mocno problematyczne. Raz, że musisz sprawdzić adresy rejestrów w innym procesorze, a dwa, że łatwo możesz się pomylić bo nic nie zasygnalizuje Ci błędu. Gdybyś używał nazw rejestrów zamiast ich adresów to asembler całą tę robotę z adresami robi za Ciebie i od razu sygnalizuje jeżeli próbujesz odwołać się do rejestru którego nie ma w nowym procesorze. Ja też kiedyś pisałem i lubiłem asembler AVR-ków, żeby nie było. A tak swoją drogą to masz złe podejście do C - zresztą tak samo jak ja kiedy pisałem w asemblerze. Po pierwsze w C możesz stworzyć kod praktycznie identyczny z asemblerem, szczególnie jak znasz asembler i domyślasz się do czego będzie dążył kompilator. Po drugie kod w C jest o niebo czytelniejszy, szybszy do napisania/analizy/debugowania pewnie z dziesiąt razy względem asemblera i na dodatek zazwyczaj niewiele większy/wolniejszy względem asemblera (pod warunkiem, że pisze go osoba która ma pojęcie jak działa procesor). Po trzecie jak zaczniesz analizować kod wypluty z kompilatora to się jeszcze mocno zdziwisz jak jest łebski i sporo się od niego nauczysz. A po czwarte jak znasz C to praktycznie możesz przeskoczyć błyskawicznie na dowolną inną platformę. Ja tam Cię nie namawiam, ale wiesz - jak to mówią: "Kto nie idzie do przodu, ten się cofa".
  • #11
    djfarad02
    Poziom 18  
    excray napisał:
    A tak swoją drogą to masz złe podejście do C - zresztą tak samo jak ja kiedy pisałem w asemblerze

    U mnie było inaczej - przejście z bascoma na C. Święcę ten dzień. Język C to taka łacina wśród języków programowania. Nie można tego powiedzieć o ASM.
  • #12
    RomanWorkshop
    Poziom 11  
    Jeśli ktoś myśli o łatwym pisaniu i przenoszeniu programu na inne platformy, to język C jest niezastąpiony. Jak dla mnie tak mały i prosty programik, przeznaczony dla konkretnego mikrokontrolera łatwiej jest napisać w asemblerze. Wszystko zależy od upodobań i doświadczenia programisty. Od dawna znam i używam różne asemblery i uważam, że tylko asembler jest "dla prawdziwych mężczyzn" ;)
  • #13
    katakrowa
    Poziom 20  
    djfarad02 napisał:
    U mnie było inaczej - przejście z bascoma na C. Święcę ten dzień. Język C to taka łacina wśród języków programowania. Nie można tego powiedzieć o ASM.

    Jeden lubi drugi nie... Ja programuję od ponad 25 lat i nigdy C ani C++ nie polubiłem. Obecnie jedynie hobbystycznie zajmuję się elektroniką i czasem nieudolnie korzystam z C/C++ jednak niemal każda linijka programu mnie "boli". Szczerze wolałem assemblera.Oczywiście nie zachęcam do pisania w dzisiejszych czasach w ASM (chyba, że jakieś malutkie rzeczy). Dostępne w śrdodowiskach IDE debugery, optymalizacje a co najważniejsze możliwość robienia wstawek ASM w miejscach kluczowych z punktu widzenia złożoności algorytmu, powodują, że pisanie całości większego programu w ASM ( czy nawet czystym C wg mnie ) to zbędna katorga. Rozumiem jednak wybór autora w sytuacji w której z C nie miał wiele do czynienia... Bo z C wcale nie jest łatwo zacząć.

    RomanWorkshop napisał:
    uważam, że tylko asembler jest "dla prawdziwych mężczyzn"

    Zgadzam się z tym całkowicie z sentymentem oglądając: https://www.youtube.com/watch?v=O-WjF_dxdHM
    W AMS można czynić cuda. Miałem na studiach znajomego co w MASM pisał zwykłe okienkowe biznesowe aplikacje korzystające z WinAPI :-)
  • #14
    Poznawaczym
    Poziom 9  
    Można by dopisać kilka linijek kodu, i uzyskać sygnały: sinus , piła na wyjściu attiny 25.
    Dany układ można by było zaliczyć w tedy do prawdziwego generatora przebiegów. Nie jestem pewien czy kod programu by się zmieścił , ale można by było wykorzystać mikrokontroler (8-bit) o większej pamięci (np. atmega 88)

    Sygnał prostokątny (pwm) można uzyskać wykorzystując układ NE555 , plus 2x diody prostownicze , kilka oporników i kondensatorów. Jest to dużo tańsze rozwiązanie i korzystniejsze. Nie trzeba nic programować. To tak nawiasem. Duży plus za swoją kreatywność.
  • flexghzflexghz
  • #15
    RomanWorkshop
    Poziom 11  
    Cytat:
    Można by dopisać kilka linijek kodu, i uzyskać sygnały: sinus , piła na wyjściu attiny 25.
    Sinus i piła na wyjściu ATtiny po dopisaniu kilku linijek kodu? Brzmi ciekawie, jaki to kod?

    Cytat:
    Dany układ można by było zaliczyć w tedy do prawdziwego generatora przebiegów.
    Z tym, że to nie jest generator przebiegów, tylko generator/sterownik PWM.

    Cytat:
    Sygnał prostokątny (pwm) można uzyskać wykorzystując układ NE555 , plus 2x diody prostownicze , kilka oporników i kondensatorów. Jest to dużo tańsze rozwiązanie i korzystniejsze. Nie trzeba nic programować.
    Różnica jest taka, że generator na układzie 555 jest analogowy i nigdy nie wiesz dokładnie, jaką wartość wypełnienia masz ustawioną w danym momencie. Nie umożliwia też precyzyjnego ustawiania poziomu wypełnienia z rozdzielczością 1%.
  • #16
    Poznawaczym
    Poziom 9  
    Kiedy nie wiesz jaki przebieg masz w układzie ne555 przykładasz oscyloskop i już wszystko jest wiadome. Wypełnienie reguluje się potencjometrem. Mogę nawet wrzucić schemat. Po co sobie podkładać belki pod nogi jak można prościej , taniej i lepiej. Jeszcze układy analogowe nie poszły do lamusa.
    Piszę w języku C lub cpp na platformie arduino lub w innych kompilatorach. widziałem kilka zagranicznych projektów generatorów na większych prockach 8 bitowych z obsługą piły, sinusa i sygnału prostokątnego.

    Dodano po 12 [minuty]:

    Oto tajemnica całego schematu:

    Prosty generator PWM (ATtiny25)

    Dodano po 3 [minuty]:

    Układ może działać również na napęcie 5 volt.

    Dodano po 13 [minuty]:

    Można wysterować żarówki, diody led, silniki prądu stałego, grzałki sygnałem PWM.
    Należy podłączyć bazę tranzystora na nóżkę nr. 3 układu poprzedzającą rezystor 1K.
    "ne555" , żeby sterować większą mocą odbiorników. Układ NE555 znalazł wiele zastosowań w elektronice i nadal się go produkuje bo to dobry scalak.
  • #17
    RomanWorkshop
    Poziom 11  
    Cytat:
    Kiedy nie wiesz jaki przebieg masz w układzie ne555 przykładasz oscyloskop i już wszystko jest wiadome.
    W moim generatorze wiem to bez oscyloskopu.

    Cytat:
    Wypełnienie reguluje się potencjometrem.
    Niektórzy preferują precyzyjną regulację za pomocą przycisków.

    Cytat:
    Mogę nawet wrzucić schemat.
    Myślę, że ten schemat znają prawie wszyscy elektronicy.

    Cytat:
    Po co sobie podkładać belki pod nogi jak można prościej, taniej i lepiej.
    Dlatego zrobiłem swój generator PWM ;)

    Cytat:
    Jeszcze układy analogowe nie poszły do lamusa.
    Układy analogowe i cyfrowe to dwa różne światy. Każdy z nich ma swoje wady i zalety, ale fakty są takie, że sterowanie cyfrowe jest prawie wszędzie.

    Cytat:
    Widziałem kilka zagranicznych projektów generatorów na większych prockach 8 bitowych z obsługą piły, sinusa i sygnału prostokątnego.
    Nie wątpię, jednak na pewno były tam dodatkowe elementy formujące dany kształt sygnału. W każdym razie generatorowi PWM jest potrzebny tylko sygnał prostokątny.
  • #18
    Poznawaczym
    Poziom 9  
    Jeśli chcesz bez oscyloskopu to można zamiast potencjometru wstawić drabinkę rezystorową i przełączać za pomocą przycisku bistabilnego kilku pozycyjnego, przebieg wypełnienia. Wartości przebiegu ( częstotliwość ) można zapisać obok przycisku. Będzie wszystko przejrzyste do odczytania. Pozdrawiam :)
  • #19
    krisRaba
    Poziom 29  
    Hmm, tak sobie myślę..
    RomanWorkshop napisał:
    W moim generatorze wiem to bez oscyloskopu.

    Tam nie ma przecież żadnego wskaźnika, więc bez oscyloskopu to trochę na czuja chyba? Bo po kilku przełączeniach częstotliwości, to ja bym chyba już nie wiedział gdzie jestem ;)

    Poznawaczym napisał:
    Sygnał prostokątny (pwm) można uzyskać wykorzystując układ NE555 , plus 2x diody prostownicze , kilka oporników i kondensatorów. Jest to dużo tańsze rozwiązanie i korzystniejsze. Nie trzeba nic programować.

    Tylko masz wtedy analogowo regulowane wypełnienie przy stałej częstotliwości przebiegu :P Autor rozwiązania może zmieniać zarówno częstotliwość, jak i wypełnienie, stąd proponowane rozwiązanie mimo iż tańsze i bez programowania, to nie pokrywa pełnej funkcjonalności. Trzeba by jeszcze dodać kolejny potencjometr regulujący prąd ładowania kondensatora...
  • #20
    katakrowa
    Poziom 20  
    Poznawaczym napisał:
    można prościej , taniej i lepiej.

    W przypadku AtTiny, ne555 nie jest żadną konkurencją cenową... Więc Tutaj stanę po stronie AtTiny twierdząc, że jest taniej i lepiej niż. Do tego programowanie można zrobić po i2s, szeregowo z pilota albo za pomocą enkodera a jak się uprzeć to można nawet zastosować potencjometr... Jedyne co trzeba dodać to trochę kodu. Z ne555 aż takich możliwości nie będzie.
  • #21
    RomanWorkshop
    Poziom 11  
    Cytat:
    Jeśli chcesz bez oscyloskopu to można zamiast potencjometru wstawić drabinkę rezystorową i przełączać za pomocą przycisku bistabilnego kilku pozycyjnego, przebieg wypełnienia.
    Jak więc widać, aby upodobnić działanie układu analogowego do cyfrowego, należy dołożyć sporo dodatkowych elementów, a i tak nie uzyska się takiej precyzji regulacji.

    Cytat:
    Tam nie ma przecież żadnego wskaźnika, więc bez oscyloskopu to trochę na czuja chyba?
    Można liczyć naciśnięcia przycisków ;) Natomiast w przeciwieństwie do regulacji analogowej, zawsze jest pewność ustawienia konkretnej i stałej wartości.
  • #22
    Janusz_kk
    Poziom 26  
    RomanWorkshop napisał:
    Można liczyć naciśnięcia przycisków


    Guzik prawda, bez wyświetlacza to tylko domysły, a z wyświetlaczem układ sie komplikuje, podobnie do 555 można dopiąć gotowy woltomierz
    i go przeskalować do zakresu 0-100 i też będzie pokazywał co trzeba.
  • #23
    djfarad02
    Poziom 18  
    Znowu to samo..... Co tak niektórych bolą te procesory? Są tanie i będą jeszcze tańsze. Nie wiem czego się spodziewacie - czy autor miał przedstawić generator na NE555? Już widzę te komentarze - "już było", "przedszkole", "schemat z noty", "odkrył Amerykę", "zaniża poziom" i tym podobne "pierdy". Więc tak źle i tak niedobrze.
  • #25
    RebellionArts
    Poziom 17  
    Dla autora gratulacje, jednak szkoda tego wyświetlacza (wskaźnika) ale mimo wszystko, znamy poziom startu i głupkowato się wciskało w podstawówce, teraz każdy liczy a co inna, to obserwuje i widzi, a liczyć chyba umie.
    Szkoda, że Ci wszyscy co tak ochoczo komentują, zamiast tego napisali by własny DIY o tych ultra istotnych układach co zapalą Ci się w łapach i wykurzą z papci. Jak ta elektronika jest taka oczywista, to ja się cofam widocznie próbując coś zbudować własnego jak to już przecież jest :O :O

    Swoją drogą, assembler jest dość istotny, do pisania exploitów ;) Nie każdy z C w głowie wie jak działa procek, a ,,Ci" po ASM nie muszą nawet doczytywać. Toć istota super prostoty (czyli okrojonej głupoty :) )
  • #26
    Janusz_kk
    Poziom 26  
    RebellionArts napisał:
    Szkoda, że Ci wszyscy co tak ochoczo komentują, zamiast tego napisali by własny DIY o tych ultra istotnych układach

    Komentarz napisać to chwila, napisać artykuł i wykonać diy to kilka dni minimum, nie każdy ma tyle czasu,
    ciesz się że ktoś kto ma wiedzę to komentuje bo jak zostaną dyletanci/laicy to z komentarzy nie będzie żadnego pożytku.

    RebellionArts napisał:
    Nie każdy z C w głowie wie jak działa procek,

    Aleś palnął głupotę, myślisz że w C nie konfiguruje się procka?

    RebellionArts napisał:
    a ,,Ci" po ASM nie muszą nawet doczytywać.

    No jasne, wszystkie bity konfiguracyjne mają w głowie ;)
    Idź doucz się bo błądzisz i to strasznie.
  • #27
    RebellionArts
    Poziom 17  
    Kolega ale się przyczepił... na ogon nadepnąłem?
    I uważam, że C jest złym przykładem, w głównej mierze przyczynia się do tego środowisko Arduino, co swoją prostotą wielu zwolenników znalazło copy-paste i wielki programista C a te fusebity na oczy nie widział. @Janusz_kk widzę z parafii C ale czemu C wypowiada się pod ASM na Attiny85 też mnie ogon boli, teraz każdy artykuł z ASM tak będzie w komentarzach wyglądał?
    Ale zresztą po co się produkuję...

    Janusz_kk napisał:

    Komentarz napisać to chwila, napisać artykuł i wykonać diy to kilka dni minimum, nie każdy ma tyle czasu,


    ... widać żeś nie zrozumiał
  • #28
    KhazAkar
    Poziom 11  
    RebellionArts napisał:
    Kolega ale się przyczepił... na ogon nadepnąłem?
    I uważam, że C jest złym przykładem, w głównej mierze przyczynia się do tego środowisko Arduino, co swoją prostotą wielu zwolenników znalazło copy-paste i wielki programista C a te fusebity na oczy nie widział.[...]

    Arduino ma się tyle do C, co ja do baletu. To jest prędzej C++ niż C, do tego uproszczony do możliwego maksimum przy zachowaniu zgodności z C++.

    Co do samego w sobie projektu - Prosty, tani i spełniający swoje zadanie, a to najważniejsze. Zasługuje na profesjonalne wykonanie w jakiejś firmie płytkarskiej :)
    Jakie ustawienia dla width/clearance?
  • #29
    Janusz_kk
    Poziom 26  
    RebellionArts napisał:
    I uważam, że C jest złym przykładem, w głównej mierze przyczynia się do tego środowisko Arduino,

    Jakbym myślał o arduino to bym o nim napisał, pisałem o czystym C, np avr studio.

    RebellionArts napisał:
    @Janusz_kk widzę z parafii C ale czemu C wypowiada się pod ASM na Attiny85 też mnie ogon boli,

    Bo pisanie w asm to masochizm, zupełnie nieprzydatny w tym miejscu, sam kiedyś pisałem w asm ale wtedy nie było innej
    alternatywy, tutaj są.

    RebellionArts napisał:
    ... widać żeś nie zrozumiał

    Chyba jednak Ty.
  • #30
    RebellionArts
    Poziom 17  
    Szkoda naprawdę, że się pomyliłem z tym C/C++, bo widzę, że na tym głównie opierają się odpowiedzi.
    Nie chcę się przekrzykiwać na forum, ale ktoś zrobił w ASM coś i to udostępnił, nie ważne jak, ważne że spełnia swoje założenia. Jak ktoś chce to niech dopisze kod w C i wstawi, zamiast tego negatywne komentarze - sztuczny tłum.
    Ja korzystam z Turbo C++ mimo że mam MVS, wolę starsze auta ne benzynę niż nowe diesle, lubię ubierać się staromodnie i jakbym miał słyszeć co chwile komentarze to bym się chyba powiesił.
    Sam pracuje teraz nad urządzeniem, które wykorzystywać będzie kod do sterowania, i oczywiście piszę go w Atmel studio, wiem jaki prosty jest C bo przesiadałem się z BASCOM i mnie wryło dosłownie. No ale nie jest dział DIY działem innowacyjnych technologii. Zrozumcie to.