Sprawdziłem programator AVRów. Rejestruje się w systemie i można programować mikrokontrolery. Niestety rejestruje się ze złymi prawami dostępu i nie można z niego skorzystać jako zwykły użytkownik. make program avrdude -p atmega32 -P usb -c usbasp -U flash:w:MAOR_main.hex avrdude: Warning: cannot query manufacturer for device: error sending control message: Operation not permitted avrdude: error: could [...]
Udało mi się uruchomić programator AVR pod Linuksem. Sprawa wygląda następująco. Laptop Toshiba, Kubuntu 32bit, programator nie działa, logi po podłączeniu są takie: Feb 1 21:12:59 quatre-toshiba kernel: [159614.156278] usb 2-1.2: new low speed USB device number 107 using ehci_hcd Feb 1 21:12:59 quatre-toshiba kernel: [159614.172453] hub 2-1:1.0: unable to enumerate USB device on port [...]
Dla rozgrzewki postanowiłem napisać prosty program zamieniający liczbę dziesiętną bez znaku na liczbę binarną. Algorytm jest dosyć prosty: 1. Jeżeli liczba jest parzysta, wypisz zero. Jeżeli nieparzysta – jedynkę. 2. Podziel liczbę przez dwa i odrzuć część ułamkową z dzielenia. 3. Jeżeli wynik dzielenia jest równy zero, zamiana zakończona. 4. Jeżeli wynik dzielenia nie jest [...]
Powoli i do przodu idzie mi uczenie się programowania mikrokontrolerów AVR. Na razie moim środowiskiem uruchomieniowym jest robot miniSUMO. Logika w głównej pętli wykonawczej będzie oparta o prostą maszynę stanów. Napisanie i wrzucenie maszyny stanów na uC na początek nie jest dobrym pomysłem, ponieważ nie ma widocznego sprzężenia zwrotnego. Postanowiłem więc napisać prostą aplikację testową. [...]
Zacząłem pisać program sterujący do robota miniSUMO. Jak na razie nie robi nic szczególnego, jak tylko odczytuje stan czujników linii i zapala odpowiednią diodę. Zacznę może od dokładniejszego opisania architektury elektroniki robota i prostego przykładu „Hello, world!”. Elektronikę sterującą tworzą dwa mikrokontrolery, ATMega32 i ATMega8. Mniejszy uC służy do obsługi sonaru, czyli ultradźwiękowego czujnika odległości. [...]
Ostatnio dowiedziałem się jak zamienić dwie zmienne bez użycia trzeciej. Generalnie jest to dość ograniczony algorytm i nadaje się najlepiej do użycia prostych, określonych zmiennych. int a, b; a = a+b; b = a-b; a = a-b; Takiego algorytmu nie stosuje się zwykle w desktopowych aplikacjach, ale w programowaniu mikrokontrolerów, gdzie pamięci może być mało, [...]