Jak masz dużo pamięci to przelicz wartości i wrzuć mapę.


@Oo-oO: Wg moich obliczeń look-up tabel nie wchodzi w grę, bo za każdym razem trzeba sprawdzać bit. Odpadłoby przesówanie bitowe z iloczynem logicznym w zamian za skok pod adres i kopiowanie. Ten sam koszt.
@leoha: Tak na pierwszy rzut oka to ilość operacji jest taka sama, jeśli uwzględnię, że teraz robię to na 8 bitach a tam kod dotyczy maszyny
Szukam jakiegoś prostego bezprzewodowego transceivera, który pozwoli na komunikację typu ping-pong bez użycia mikrokontrolerów. Chodzi mi o coś takiego żeby jeden transceiver sprawdził czy jest w zasięgu drugiego (a więc czy znajduje się w odpowiednim obszarze) i na podstawie tej informacji dawał odpowiedź tak lub nie do reszty układu w którym się znajduje. Czy możecie polecić jakiś prosty układ?

#avr #elektronika
#avr #elektronika #informatyka #arduino
No #!$%@?ł byś się mirun jeden z drugim?!
Kupiłem dawno temu klona digispark attin85 od maj frenda, problemem było wgrywanie programów przez arduino, bo po podłączeniu pod usb się tak szybko resetował, że nie dało się nić wgrać. Znalazłem gdzieś coś przez co wgrałem nowy bootloader i to załatwiło problem. A teraz jak wróciłem do płytki (muszę poćwiczyć coś na niej) i zacząłem programować to coś się zjebczyło,
Hej jak macie rozwiązane takie sytuacje gdy mikrokontroler wykonuje jakieś zadanie, które trwa np. 30 sekund, przez co główna pętla programu jest zablokowana przez to właśnie zadanie, a chcielibyście np. zmienić godzinę na wyświetlaczu? Myślałem nad implementacją jakiegoś prostego schedulera, który "żonglowałby procesami" dając, złudzenie pracy równoległej. Coś podobnego jak np. w FreeRtos.

http://www.freertos.org/implementation/a00016.html

#programowanie #elektronika #avr #atmega
@pepepanpatryk: w przerwanie wrzucasz co najwyżej flagę że należy zaktualizować wyświetlacz. Nie można aktualizować żadnego LCD w przerwaniu. Możesz to zrobić za to inaczej, jeżeli np uC steruje przez 30s silniczkiem to to jest kupa czasu, żeby pętla main mogła obrócić. Musisz zrobić prostą maszynę stanów, np silnik ma wyknać 5 kroków w przód, jeden w tył i koniec. To robisz listę kroków, wykonujesz krok, przechodzisz np do aktualizacji wyświetlacza, znów
No witam AVRowe świry! Jestem mirkiem, ale nie Kardasiem #pdk i przechodzę od razu do konkretów:

Gdyby do momentu publikacji ktoś mi zarzucił że nic nie zrobiłem dla Polaków(jakby głosowanie w każdych wyborach na JKM nie wystarczyło), to wstawiam tu ten wydaje mi się wartościowy wpis z prawdziwym OPUS MAGNUM w kucowaniu na platformę #avr i nie tylko - biblioteką xprintf.

Jak mawiał klasyk i mój mentor Klocuch12:

Mało ludzi wie, a
QBA_ - No witam AVRowe świry! Jestem mirkiem, ale nie Kardasiem #pdk i przechodzę od ...

źródło: comment_3jPOvIe8ch1mfzKV9Xwp6eSb8Vaw3Vwc.jpg

Pobierz
@QBA__:

uint8t a = 10;
uint8t tab[10];
uint8t str[10];

itoa(a, (char*)(tab), 10);
sprintf(str, "%s.4.4 \n", (char*)(tab) );

Text.Write(str);

Akurat jak ktoś pisze na AVR to tam sprintf działa znakomicie. No chyba, że brakuje mu miejsca i chce się bawić. Za to sprintf jest potężną funkcją i ma mnóstwo opcji które na avr działają.
Ofc zjadło * przy rzutowaniu. Kompilator trochę się o to martwi.
No i jeszcze są funkcje dtostrf, dtostre
Mirki od #avr programuje tu kto jeszcze prawilnie w #jezykc ?

Dzień dziecka co prawda minął, ale pijcie ze mno kompot - dodałem do słynnej biblioteki u8g2 obsługę hardwareowego i2c i mój pull request został przyjęty ( ͡ ͜ʖ ͡)

W moim repo na githubie dodałem do tego jeszcze obsługę funkcji xprintf - to taki zbiór funkcji dla mikrokontrolerów działających jak printf na dużych maszynach.
Krótko mówiąc
QBA__ - Mirki od #avr programuje tu kto jeszcze prawilnie w #jezykc ?

Dzień dzieck...

źródło: comment_EiLNNpckwWIJa5t7JmL4Kytgsk1DOTqU.jpg

Pobierz
@QBA__: Gdzieś w dyskusji do któregoś z bugów w tej bibliotece pojawił się datasheet do sterownika. Z nim było prosto. Wysłanie bajtu po 8080 do uC to 6 linijek kodu. Reszta to sprawa właśnie rozwlekła. Można pisać po pamięci sterownika, można zrobić bufor w pamięci uC, kreślić na buforze a bufor tylko ładować co jakiś czas. Czcionkę łatwo znaleźć, tekst nie jest problemem. Gorzej z gui i menu. Ponieważ potrzebowałem tylko
@majsterV2: Po pierwsze to lel, to jest pojedynczy tranzystor. Nawet w artykule masz info o tym, że klasyczny krzemowy może działać bez problemu z połową tej częstotliwości a jakoś nie mamy procesorów 150 GHz. W złożonych układach musisz ograniczyć częstotliwość, żeby ci się synchronizacja nie rozjechała.

Po drugie co to za logika, że zakładamy, że da się przenieść atmegę na grafen by mieć z tego korzyści a poreck arm już nie?
https://pastebin.com/ARc6uBJe
Ból jest taki, że w żaden sposób nie mogę zaświecić ledami w rzędach 6, 7 i 8. Wzoruje się tutaj notą katalogową https://datasheets.maximintegrated.com/en/ds/MAX7219-MAX7221.pdf
Skecz z arduino potrafi to zrobić ale tamte metody są zawiłe jak makarony.
Najbardziej irytuje mnie fakt, że matryca (we właściwej kolejności) reaguje na pozostałe rozkazy, tylko kurła adresy Digit 5, Digit 6 i Digit 7 "zdają się nie działać".
Czy macie jakiś pomysł co jest nie tak?
A.....k - https://pastebin.com/ARc6uBJe
Ból jest taki, że w żaden sposób nie mogę za...

źródło: comment_u9CW591LKbR7HtS6kM7jMaZypFenG3XR.jpg

Pobierz
Mirki doradźcie proszę - jakie złącza mogę wykorzystać do podłączenia czujników do atmegi? Najlepiej takie czujniki, które mogę wsadzić w obudowę (odpowiednio przerobioną), a następnie np. kabelkiem podciągnąć do odpowiedniego pola lutowniczego na płytce? Planuję 2 czujniki magnetyczne (2 pinowe), 1 gniazdo 6 pinowe na podpięcie zewnętrznego wyświetlacza, oraz jedno złącze do którego będę podpinał silnik.

Popatrzcie sobie na tą obudowe -> klik, widać tam wystające złącze usb. I dokładnie tak
Co robić w sytuacji gdy część przycisków jest np na porcie B, a część na C?


@ZaQ_1: Czytać te z b i czytać te z c.
PINx odzwierciedla aktualny (w chwili odczytu) stan portu - nie konfigurację tylko to co się na porcie dzieje z uwzględnieniem ofc całego setapu.
PINC & ( 1<< PINC3) zwraca (0x01<<3) jeśli pin jest ustawiony i 0 jeśli nie jest.
#avr #elektronika

Chcę napisać program na sucho, bo nie mam jak sprawdzić czy działa. Są 2 przyciski i 4 diody LED. Po wciśnięciu 1 przycisku, zapalają się diody w kolejności L1,L2,L3,L4. Po wciśnięciu 2 przycisku zapalają się w kolejności L4,L3,L2,L1.

Moj program:

#include
#include
int main (void)
{
DDRB = 0xFF;
PORTB = 0x00;
DDRD = 0x00;
PORTD = 0xFF;

while(1)
{
int i;
for (i=0;i<5;i++)
{
PORTB |= BV(1);
delayms(500);
Mam układ, w którym za pomocą atmegi 168 chcę sterować silnikiem DC 12v z wkrętarki. Cały proces sterowania silnikiem oparty jest na dwóch tranzystorach oraz przekazniku. Jeden tranzystor steruje pracą silnika, drugi kierunkiem obrotu silnika. Silnik ten pobiera około 3A prądu więc dość sporo. Powoduje to, że całe okablowanie na płytce stykowej dość mocno się grzeje, oraz podczas uruchamianie silnika jest widoczny spadek napięcia na mikrokontrolerze (przygasa podpięta dioda). Jak możnaby optymalnie
@bielu000 nie puszczaj 3A przez płytkę stykową ani przez kabelki z chinoleum to przestaniesz mieć problemy.

Tranzystory polutuj na pająka z jakimś lepszym przewodem niż 0.1mm2 z schenzen.

To że napięcie siada na atmedze pewnie wynika z tego że 12V wchodzi na płytkę, gdzieś się rozgałęzia na stabilizator i na mosfety. Te blaszki w płytkach stykowych to często stal z gównolitu która ma zajebisty opór, do tego połączenie stykowe też ma swoją
Te blaszki w płytkach stykowych to często stal z gównolitu


@Tymian: Ja bym "wzmocnił" newralgiczne obwody na płytce poprzez wlutowanie i ocynowanie plecionki służącej do zbierania cyny. Świetnie się do takich celów nadaje. Plecionki używam również do odprowadzania ciepła na przykład w kartach wifi na usb. W sensie z układu na metalową konstrukcję wtyku.

@bielu000
@cyberDEV: minimum musisz ustawić model MCU, prędkość transmisji i poinstruować avrdude że ma używać usbasp. Ściągnij sobie jakąś nakładkę graficzną, będzie ci łatwiej. Ja używałem https://github.com/zkemble/AVRDUDESS jak jeszcze bawiłem się w AVRy. Ewentualnie komendy w terminalu ale lepiej żebyś wiedział co robisz zwłaszcza przy ustawianiu fuses. Pmogłoby gdybyś podał model procka i coś więcej na temat tego hexa jeżeli to nie tajemnica.
@cyberDEV: to zakładając że fuses są ustawione (a na świeżym procku nie są) i elektrycznie jest to dobrze połączone:
1. wybierasz sobie usbasp z listy tam gdzie na obrazku jest 'Arduino'.
2. Wybierasz model procka w polu "MCU (-p)".
3. Sprawdzasz czy wszystko działa klikając "detect". Musi pokazać że model procka się zgadza a w konsoli będzie że avrdude jest zadowolony.
4. Wtedy pokazujesz na hexa w polu "flash", zaznaczasz "erase