O programowaniu w C słów kilka

Czyli wszystko co potrzebne prawdziwemu DIY'owi;) Porady, pytania i opisy używanego przez nas sprzętu.
Awatar użytkownika
Pyra
Site Admin
Posty: 8527
Rejestracja: niedziela 02 sie 2009, 20:35
Lokalizacja: Gądki

Post autor: Pyra »

Witam
Wczoraj... w sumie już dzisiaj, udało mi się napisać skompilować i uruchomić dwa pierwsze programy. Dwa Ledy, migające na zmianę, oraz dwa LEDy o różnej jasności - PWM :mrgreen:

Pozdrawiam
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Awatar użytkownika
greg
Posty: 3535
Rejestracja: środa 08 paź 2008, 00:16
Lokalizacja: Wrocław
Kontakt:

Post autor: greg »

Witamy w C ;)
Sterownik extended v3.5 HE <klik>
Instrukcje sterowników w PDF <klik>

kontakt: info(at)krypton(dot)pl
(podstawić @ i . w stosowne miejsca)
Awatar użytkownika
Pyra
Site Admin
Posty: 8527
Rejestracja: niedziela 02 sie 2009, 20:35
Lokalizacja: Gądki

Post autor: Pyra »

Witam
Na razie to było na zasadzie małpy, wklepanie przykładu z książki, potem analiza jak to działa i zamiast jednego migającego światełka, zrobiłem dwa migające na zmianę.

Pozdrawiam
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Marcin S.
Posty: 435
Rejestracja: piątek 12 wrz 2008, 10:11

Post autor: Marcin S. »

Gratulacje! Jeśli znasz ang., polecam listy mailingowe avr-chat i avr-gcc-list.

Pzdr.
M.
ptja
Posty: 2414
Rejestracja: poniedziałek 31 gru 2012, 12:44
Lokalizacja: Łódź

Post autor: ptja »

Pyra pisze:Na razie to było na zasadzie małpy, wklepanie przykładu z książki, potem analiza jak to działa i zamiast jednego migającego światełka, zrobiłem dwa migające na zmianę.
Ha przypomniało mi to mój pierwszy program w asemblerze: 7-bajtowa syrena na Meritum przepisany chyba z "Przeglądu Technicznego".
A potem nastąpiło zapisanie wielu kartek w kratkę (lepiej się wpisywało liczby hex i bin) oraz duże zużycie książki "Mikroprocesor w pytaniach i odpowiedziach" (jeśli dobrze pamiętam, że to była ta), w której miałem listę rozkazów Z80.
--
pozdrawiam,
Jarek Andrzejewski
Awatar użytkownika
ElSor
Site Admin
Posty: 5041
Rejestracja: niedziela 13 wrz 2009, 12:52
Lokalizacja: Ozimek

Post autor: ElSor »

Ja już jako dziecko (ok 10-13lat) przepisywałem przykłady z jakiejś książki na "komputer" Schneider CPC464. Później zapis tego na kasetę i jaka radocha, gdy coś działało. Nie analizowałem jeszcze wtedy co, jak i dlaczego. Później jako starsze dziecko (ok 16-17lat) byłem zmuszony w wakacje albo i ferie zimowe być u babci jakieś 2 tygodnie. W tym czasie z dostępnego w Turbo Pascalu helpa troszkę się nauczyłem programowania. Zrobiłem program symulujący wirusa i program, który zadawał kilka pytań i na podstawie wprowadzonych danych "generował" różne odpowiedzi. Z tego co pamiętam zamiast pętli powtarzającej się 100x zrobiłem CTRL+c i 100x CTRL+v :mrgreen:
W technikum uczyli nas ASM na procesory '51 ale w ogóle nie umiałem tego pojąć i stwierdziłem, że to jakieś badziewie, jednak, gdy przyszła pora na pracę dyplomową to szybko przypomniałem sobie o tych procesorach i artykule z EdW o Bascomie.
Po dłuższej przerwie wróciłem w świat mikroprocesorów i natknąłem się na arduino. Coś nawet popisałem swojego ale jakoś nie wciągnęło mnie to i ponownie piszę w bascomie, mimo, że od 4-5 miesięcy coś skrobię w C (Atmel Studio 6) ale jakoś przełamać się nie mogę całkowicie, choć prosty driver latarkowy już samodzielnie napisałem i o dziwo działa jak trzeba :wink: Zastanawiam się, czy książka Kardasia pomoże mi w tym, bo z tego co widzę na jego blogu, nie jest łatwo a i podejście ma inne nieco niż Tomasz Francuz w swojej książce. Człowiek chyba się starzeje, czasu też mało a tak bardzo by się chciało już mieć to za sobą znając zalety języka C.
joon
Posty: 621
Rejestracja: niedziela 04 mar 2012, 15:31
Lokalizacja: Przemyśl

Post autor: joon »

A ja polecam wygodne środowisko Eclipse, po odpowiednim skonfigurowaniu praca jest naprawdę bardzo przyjemna ;)

Zastanawiam się, czy książka Kardasia pomoże mi w tym, bo z tego co widzę na jego blogu, nie jest łatwo a i podejście ma inne nieco niż Tomasz Francuz w swojej książce. ]
Jest dużo łatwiej niż myślisz ;)
A na forum jest masa ludzi którzy praktycznie przez całą dobę są w stanie pomóc- wiem bo korzystam. Sam długi czas starałem się nauczyć c z różnych kursów, blogów, książek, dopiero jednak książka Mirka sprawiła że ruszyłem do przodu.
Ostatnio zmieniony sobota 23 mar 2013, 15:02 przez joon, łącznie zmieniany 1 raz.
Awatar użytkownika
Pyra
Site Admin
Posty: 8527
Rejestracja: niedziela 02 sie 2009, 20:35
Lokalizacja: Gądki

Post autor: Pyra »

Witam
Ja pisałem w Basicu i asm na Spectrum, miałem nawet środowisko do asm chyba Zeus się to nazywało...
Nie wstydzę się Bascoma jak to nieraz na elektrodzie można usłyszeć, po prostu trzeba dobierać narzędzie do potrzeb.
ElSor pisze:...Człowiek chyba się starzeje, czasu też mało ...
Coś w tym jest...

Pozdrawiam
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Awatar użytkownika
ElSor
Site Admin
Posty: 5041
Rejestracja: niedziela 13 wrz 2009, 12:52
Lokalizacja: Ozimek

Post autor: ElSor »

joon pisze:A ja polecam wygodne środowisko Eclipse, po odpowiednim skonfigurowaniu praca jest naprawdę bardzo przyjemna ;)
Do książki może i mnie przekonasz ale do Eclipsa już nie. Na blogu kiedyś napomniałem, że nie można programować bezpośrednio nowszych procesorów (na tej liście jest np AtTiny13A). Wspólnie z Mirkiem ustaliliśmy, że można zmieniać config AVRDude i dodawać nowe procki. Znam pozostałe wady i zalety obu i zostaję przy Atmel Studio, tym bardziej, że posiadam programator AVR ISP mk II.
Idą święta więc czas na książkę od zajączka :razz:
joon
Posty: 621
Rejestracja: niedziela 04 mar 2012, 15:31
Lokalizacja: Przemyśl

Post autor: joon »

ElSor, ja tam w c jestem początkujący ale zobacz na screany które chwilę temu zrobiłem z Eclipse oraz mkAVR calculator.

Osobiście siedzę na płytce uruchomieniowej oraz na systemach z m8, m32 więc nie mam jak sprawdzić jak z tym Attiny13A

Obrazek
Obrazek
ptja
Posty: 2414
Rejestracja: poniedziałek 31 gru 2012, 12:44
Lokalizacja: Łódź

Post autor: ptja »

Pyra pisze:po prostu trzeba dobierać narzędzie do potrzeb.
zgadza się. Tylko w C spokojnie napiszesz i program na 10 linii i całego Unixa (a np. gcc ćwierć wieku temu miało 110 tys. linii kodu), a w basicu im większy program, tym więcej "walki z narzędziem", coraz trudniej zapewnić niezależność modułów programu i brak interferencji (np. nazwy zmiennych).
--
pozdrawiam,
Jarek Andrzejewski
Awatar użytkownika
fredek
Posty: 372
Rejestracja: poniedziałek 03 maja 2010, 13:58
Lokalizacja: Łódź

Post autor: fredek »

ElSor pisze:...że nie można programować bezpośrednio nowszych procesorów (na tej liście jest np AtTiny13A)
A jak programujesz ATtiny13A (brak wsparcia w avrdude) jako ATtiny13 to coś tracisz?
Mam Atmel Studio 6 oraz Eclipse Indigo i jakoś tylko Eclipse używam, dużo mniej miejsca zajmuje, działa szybko nawet na netbooku i wygodnie się kilkoma projektami zarządza, edytor kodu jest w Eclipse rewelacyjny i ma sporo przydatnych bajerków ułatwiających pisanie :-)
Awatar użytkownika
ElSor
Site Admin
Posty: 5041
Rejestracja: niedziela 13 wrz 2009, 12:52
Lokalizacja: Ozimek

Post autor: ElSor »

joon pisze:Osobiście siedzę na płytce uruchomieniowej oraz na systemach z m8, m32 więc nie mam jak sprawdzić jak z tym Attiny13A
Jak wybierzesz 13A i będziesz chciał zaprogramować w AVRDude to wyskoczy błąd w stylu "AVRDude don't support device ATTiny 13A" czyli po naszemu, ze nic z tego.
fredek pisze:A jak programujesz ATtiny13A (brak wsparcia w avrdude) jako ATtiny13 to coś tracisz?
W tym przypadku tracę możliwość wykorzystania 2 rejestrów dodanych w wersji A. Procesorów nie obsługiwanych przez AVRDude jest więcej, więc jeśli mam przeskoczyć na C to nie chcę się już na początku ograniczać.
Netbooka nie mam a zwykłego laptopa z 4 rdzeniami, 2 dyskami (w tym system na SSD) takie argumenty jak szybkość czy objętość środowiska są dla mnie mało istotnymi argumentami. Fakt, że nie wykorzystam 90% możliwości Atmel Studio ale przynajmniej mogę użyć każdego z rejestrów każdego z procesorów w tym ATTiny 10, który jest ciekawą opcją do latarek :razz:
Jak na razie i tak nie jest ważne czy w garażu stoi mercedes czy smart jak nie ma się tylko kartę motorowerową ;)
Awatar użytkownika
Pyra
Site Admin
Posty: 8527
Rejestracja: niedziela 02 sie 2009, 20:35
Lokalizacja: Gądki

Post autor: Pyra »

Witam
ptja pisze:...a w basicu im większy program, tym więcej "walki z narzędziem", coraz trudniej zapewnić niezależność modułów programu i brak interferencji (np. nazwy zmiennych).
No widzisz, tu wypływają przyzwyczajenia z innego języka. W Bascomie też można cuda robić, zobacz na dzieła manekinen. Uważam że Bascom jest nawet wygodniejszy do prostych aplikacji, kiedy nie musisz znać dokładnie funkcji rejestrów, zasady sterowania wyświetlaczem LCD itp.

Pozdrawiam
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Awatar użytkownika
Pyra
Site Admin
Posty: 8527
Rejestracja: niedziela 02 sie 2009, 20:35
Lokalizacja: Gądki

Post autor: Pyra »

Witam
No i mogę się pochwalić moim pierwszym programem, zmieniającym jasność dwóch diod LED w odwróconej proporcji.
#include <avr/io.h>
#include <util/delay.h>


int main()
{
TCCR0A=0xa1;
TCCR0B|=(1<<CS00);
DDRB|=(1<<PB0) | (1<<PB1);
for(;;)
{

unsigned int short y=0;
while (y<255)
{
OCR0A = y;
OCR0B =~y;
_delay_ms(50);
y++;
};

while (y>0)
{
OCR0A = y;
OCR0B =~y;
_delay_ms(50);
y--;
};

}

while(1) {}

}
Pozdrawiam
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
ODPOWIEDZ