@Dzonzi: jw. tzn. w project properties w toolchain w gnu c/c++ (osobno) compilers w directories klikasz zielonego plusika i wybierasz ścieżkę do pliku z zawartośćią twojabiba.h/c/cpp. Wtedy, jak to zrobisz to otwierasz plik c/cpp jak masz taki do swojej biblioteki i klikasz File, wybierasz MOVE file to nazwatwojegoprojektu. I wtedy jak zrobisz include to kompilator wie o co ci chodzi.
Hej.

Napisałem program w którym za pomocą enkodera inkrementuję wartośc pewnej zmiennej typu uint8t po czym ta wartość jest ustawiana jako MAX licznika timera 2A który działa w trybie fast PWM. Tym sposobem kontroluję jasność diody LED podłączonej do PB3. Jednocześnie wartośc jest wysyłana do wyświetlacza LCD.

Problem polega na tym, że o ile zmieniając wartośc zmiennej z 0 do 255, LED zaświeca się z maksymalną jasnością, o tyle zmiana z
Mirki z tagów #mikrokontrolery #avr - dajcie bmi jakieś ciekawe projekty, które mógłbym wykonać, żeby przy okazji się czegoś nauczyć.
Ogarniam przerwania, timery, adc, wszelkie sterowanie diodami świecącymi, przyciskami, wyświetlaczem LCD 16x2, 7 segmentowymi, na resztę części czekam i za około 2-3 tygodnie dopiero będę miał, ale chciałbym przez ten czas coś grzebać
@Luk_1mex: bufor wejściowy usart zazwyczaj ma pojemność ograniczoną do jednego bajta.
Jak coś przyjdzie to siedzi w tym buforze i generuje przerwanie.
Tutaj dalej zadanie programisty żeby wziąć to z tego bufora i przenieść np. do większego bufora z którego program sobie coś dalej czyta.

Bardzo użyteczne jest korzystanie z DMA. Transfery dzieję się samoczynnie i kiedy otrzymamy pełną ramkę danych np. 1024bajty to dostajemy info że nowa ramka jest gotowa
#avr #atmega
Siemka Mirki. W jaki sposób realizujecie przesuwanie tekstu na ekranach LCD typu HD44780?
Napisałem bardzo prostą funkcję odbijającą w górnej linijce tekst podany w formie tablicy. Całość działa tak jak sobie założyłem, ale czy mógłby mi ktoś to sprawdzić, czy można to zrobić łatwiej, albo ładniej?
lcdlocate(), lcdstr() to gotowe funkcje z bibloteki obsługi HD44780 z której korzystam.
mój fragment kodu:
http://wklej.org/id/3380209/
@BoaKusiciel: Zrobić bufor dla każdej linii, drukować do n-tego miejsca w buforze, w razie co, z offsetem na wyświetlaczu. (czyli z bufora bierzesz od 3 znaku i rysujesz od 5 pozycji na ekranie). Odświeżasz co 40 razy na sekundę. Sterownik zmienia tylko zawartość buforu i, ewentualnie, formatowanie.
Może któryś Mireczek albo Węgierka znająca się na #programowanie #mikrokontrolery #avr albo inne takie pomoże mi z jednym problemem.

Dostaje plik .hex i muszę go przesłać do urządzenia i tu pojawia się problem bo plik nie jest jednolity i ma wcięcia, ogarnąłem już standard w jakim to jest generowane ( Intel Hex - wikipedia ) ale jedna rzecz nie daje mi spokoju, dlaczego są zastosowane takie wcięcia skoro można było by dane
Pobierz bi-tek - Może któryś Mireczek albo Węgierka znająca się na #programowanie #mikrokontr...
źródło: comment_Sqm6JibTNMLA7OehN26ASVSuHgtNELEz.jpg
@bi-tek: hexów nikt nie generuje na kolanie, tylko są generowane podczas generowania kodu wynikowego, jako efekt zlinkowania iluś modułów oprogramowania. Przykładowo do AVRa możesz mięc kilka wcięć bo soft zawiera kilka bloków - bootloader ładowany od jednego adresu, a potem kod właściwy ładowany ładowany od innego adresu... i jeszcze mogą być np zalinkowane dane statyczne (tablice/ciągi) które też zajmują osobną pamięć, rozsądnie by było by zaczynały się od nowego bloku pamięci
#avr #mikrokontrolery
Mam książkę Mirosława Kardasia - tzw. Bluebook - Mikrokontrolery AVR Język C Podstawy programowania.
Warto zaopatrzyć się jeszcze w książkę Tomasza Francuza - Język C dla mikrokontrolerów AVR. Od podstaw do zaawansowanych aplikacji, czy bezsensu i sama książka Kardasia wystarczy?
Mirki spod tagu #avr #mikrokontrolery
Jak można uprościć ten kod? Widzicie w nim jakieś źle, brzydko napisane fragmenty? Bawię się avr dopiero od kilku dni, celem tego programu jest zaświecanie jednej diody, później drugiej i trzeciej i następnie zgaszenie pierwszej, drugiej i trzeciej (coś jak te ledowe kierunkowskazy w nowszych autach).

Program całkowicie dobrze działa, ale pytanko o kod - co tu poprawić? :)
Wklejam link do kodu:
http://wklej.org/id/3371485/
@noffi: żeby programować przez USBasp musisz zresetować atmegę, żeby wejść do "sesji" ISP. A co się stanie z ramem po resecie? ( ͡° ͜ʖ ͡°)

Obczaj sobie debugWIRE, ale do tego potrzebujesz czegoś w stylu Atmel ICE. Albo lepiej przesiąść się na STM32 (taniutko na aliexpress sobie ogarniesz i płytkę i programator/debuger).
#elektronika #arduino #avr

Mirunie, mam taki programator:
https://pl.aliexpress.com/item/USB-ISP-Programmer-for-ATMEL-AVR-ATMega-ATTiny-51-AVR-Board-ISP-Downloader-Free-Shipping/2035761181.html

Podpinam do stykówki na której mam atmege 328 - tutaj wszystko jest prawidłowo, sprawdzałem kilka razy z miernikiem.
Podpięcie z programatorem również, wszędzie jest przejście.
Kwarc z dwoma kondensatorami 22pF też jest,
reset z Vcc przez rezystor 10k (no i do RST na programatorze też).

Bootloader i ustawienia do Arduino (mam 1.6.9) stąd:
https://www.reddit.com/r/arduino/comments/3q4f8m/distribution_of_boardstxt_etc_for_the_full/?st=jdko08lq&sh=286d9d9d

No i mam błąd:

avrdude: warning: cannot set sck period.
@IceGoral: Na moje to masz dwie funkcje
virtual int aJsonStream::flush() oraz virtual void flush() która przesłania virtual void Print::flush()
To tak jakbyś na rzecz klasy aJsonStream chciał wywołać flush z innej przestrzeni nazw. Albo coś podobnego, wołam @KrzaQ2 bo on to ogarnia lepiej.