Kurde, mireczki, mam jakiś kitowaty LCD 16x1 i nie potrafię go zmusić do pokazywania więcej niż pierwszych ośmiu znaków. Nie miałem tych problemów z innymi LCD. Macie jakiegoś tipa?
#arduino #avr #lcd
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Próbuję skompilować program w C na AVR. Jeszcze wczoraj wieczorem kod kompilował się bez błędów, dzisiaj dostaję błędy:

unknown type name 'int8t'
expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘
attribute_’ before 'typedef'

Programuję na Windows7, kompilator to
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@lasso: Tak na przyszłość: W C nie musisz odczytywać osobno rejestrów ADCL i ADCH, możesz odczytać bezpośrednio rejestr szesnastobitowy ADC do zmiennej szesnastobitowej.
  • Odpowiedz
Używał ktoś może CCTools na Androida do programowania Atmegi? Nie mogę skompilować kodu, mam błąd:
/data/data/com.pdaxrom.cctools/root/cctools/bin/ash: exec: line 1: gcc: Permission denied
Mam zrootowane urządzenie, ale nie wyskakiwał mi żaden monit że aplikacja chce dostępu...
#avr #atmega #elektronikadiy
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Kilka dni temu prosiłem o pomoc z programowaniem ATmegi, a dzisiaj prezentuję wam napisaną od zera bibliotekę do PCD8544 czyli do popularnych wyświetlaczy z Nokii 5110 :) Cechy:

- Bufor który można łatwo modyfikować, a potem wysłać go do ekranu
- Obsługa ASCII, 6 wielkości czcionek
- Kursor, kolejne znaki są automatycznie ustawiane obok siebie/w nowej lini
- Włączenie/wyłączenie wyświetlacza
skew - Kilka dni temu prosiłem o pomoc z programowaniem ATmegi, a dzisiaj prezentuję ...

źródło: comment_Hbz7G2T7PgJU4jkXWj0DCfMWytmHzKRO.jpg

Pobierz
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@EssePL: wskaźnik ma jeden rozmiar, bez względu na to na co wskazuje.
@skew: możesz albo wyświetlać tak długo aż nie natrafisz na null albo zrobić funkcję typu:

uint16_t sizeofstring(char *str)
{
  • Odpowiedz
To znowu ja. Uczę się swojej ATmegi8 i postanowiłem okiełznać Timera0 na dwa sposoby: raz z sukcesem za pomocą globalnych przerwań - udało się uzyskać przerwanie co ~1s (F_CPU=8000000 / 256 / 1024 / 30), natomiast z drugim, "ręcznym" sposobem mam problem: atmega tak jakby pomija preskalera całkowicie. Poniższy kod daje przerwanie co ~0.5s bez względu na to jaki preskaler ustawię. Czemu on nie działa? Nie satysfakcjonuje mnie takie rozwiązanie, żebym musiał
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Visher: Jesteś pewien, że dobrze zdejmujesz flagę?

Alternatively, TOV0 is cleared by writing a logic one to the flag.


a u ciebie stoi

#define TIMER0_RESET TIFR &= ~(1 << TOV0)
  • Odpowiedz
Witam Linukso Mirków, potrzebuję poczytać o tym jak podłączyć moją atmegę (8) do laptopa po usb standardem rs232. Mam na myśli jak skonfigurować połączenie w terminalu, lub jakiego programu użyć. W sieci znalazłem poradniki tylko pod Windowsa, a jestem zielony w temacie. Możecie podrzucić jakiegoś linka? Preferowany PL ale po Angielski też coś może się uda narozumić.
( ͡ ͜ʖ ͡°)
#linux #avr
  • 14
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@xaoc: polecam CuteCOM, fajny graficzny programik. Wszystkie parametry ustawiasz właśnie za jego pomocą.
Z jakiej przejściówki usb-uart korzystasz? (Specjalnie nie napisałem RS232, bo ten standard ma m.in. inne poziomy napięć).
Z konsoli możesz użyć po prostu setserial (parametry w man/ --help), zapisywać za pomocą echo "tekst" >> /dev/ttyUSB0 oraz odczytywać cat /dev/ttyUSB0.
  • Odpowiedz
Jak dokładnie wygląda w avr przełączanie kontekstu?
W przykładowej atmedze 16 w momencie w którym wystąpi coś co ma wywołać przerwanie, niech będzie zrównanie się licznika z zadaną liczbą, ustawiana jest flaga i licznik zerowany. Kiedy skończy się aktualna instrukcja to wszystkie rejestry procesora w tym PC są wrzucane na stos, a do PC jest wpisana wartość z wektora odpowiadająca handlerowi tego przerwania. Zerowany jest też bit odpowiedzialny za włączenie przerwań w status
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@kiciek: When the AVR exits from an interrupt, it will always return to the main program and execute one more instruction before any pending interrupt is served.
Z datasheetu.
  • Odpowiedz
@Analityk: @kiciek: No na to wychodzi, bo ten cytowany fragment o tym mówi:

When an interrupt occurs, the Global Interrupt Enable I-bit is cleared and all interrupts are disabled. The user software can write logic one to the I-bit to enable nested interrupts. All enabled interrupts can then interrupt the current interrupt routine


Więc "cli()" robi się samo, ale SREG może się przy kombinowaniu z innymi przerwaniami zmienić
  • Odpowiedz
#avr #atmel #elektronika

Mirki polecicie jakiś sprawdzone moduły/ podzespoły dla laika do nabrania skilla i wyrobienia? Chodzi mi przykładowo o sprawdzony prosty w obsłudze wyświetlacz może jakiś BT, czujnik niedrogi? Generalnie podstawowe elementy pasywne mam + diody, przyciski etc.
  • 14
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@sztilq: BT polecam np. HC-05 lub HC-06, obsługujesz go po UART. Ale rzeczywiście wymyśl sobie jakiś projekt i go zrealizuj, wtedy jest większa motywacja do pracy ( ͡º ͜ʖ͡º)
  • Odpowiedz
To znowu ja ( ͡° ͜ʖ ͡°). W końcu musi przyjść ten moment, gdy zrobi się pierwszy raz z ATmegi roślinkę, ale nie sądziłem że nadejdzie tak szybko :( Dałem sobie siana z wgrywaniem bootloadera arduino, uznałem że pobawię się na czysto w c. W Atmel Studio napisałem sobie hello world, ustawiłem FCPU na 8Mhz, wgrałem plik .hex za pomocą AVRdude, tadaaa działa :D Dioda mryga co sekundę.

Postanowiłem że podepnę
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@mateusz_ocet: Jak nie wie co podłączyłeś bo nie odczytało sygnatury to co miał pokazać avr dude? Przykład. @skew: nope. Ustawiłeś atmegę tak, że teraz potrzebuje wejścia zewnętrznego zegara na którąś nóżkę - teraz nie pamiętam. Możesz to zrobić inną atmegą (zaprogramować tak, by stan jednego pinu ciągle się zmieniał i podłączyć go pod ten pin (jedna z nóżek oscylatora) lub wykorzystać choćby podwójną bramkę nand czy nor lub
A.....k - @mateusz_ocet: Jak nie wie co podłączyłeś bo nie odczytało sygnatury to co ...

źródło: comment_tXnWOCSf3BxxkIUe0r5Kgpb7oUcwc179.jpg

Pobierz
  • Odpowiedz
@skew: Kwarc ma swoją masę. Zanim wejdzie w rezonans i częstotliwość będzie stabilna mija kilka do kilkunastu ms. Przez ten czas mógłbyś chcieć połączyć się z czymś przez UART i byłaby klapa. (mogłaby być, różnie bywa). Dlatego nie ufa się startującemu kwarcowi.
  • Odpowiedz
Drodzy #avr i #elektronika, trochę #arduino. Chcę wgrać na czystą ATmegę 328P bootloader Arduino, co by móc szybko i wygodnie pisać w Arduino IDE i mieć dostęp do masy bibliotek :)

Korzystałem z części tego poradnika: http://majsterkowo.pl/przenoszenie-prototypu-na-atmege/ ale zamiast innego arduino wybrałem jako programator usbasp, i go też podłączyłem do ATmegi. Dałem zewnętrzny oscylator 16Mhz, wybrałem płytkę "ATmega328P @ 16Mhz", wcisnąłem "Wypal bootloader" i
skew - Drodzy #avr i #elektronika, trochę #arduino. Chcę wgrać na czystą ATmegę 328P ...

źródło: comment_Ax2z55whxMvFdJzzZhjmtlOjCDz7Phkm.jpg

Pobierz
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mireczki, wygrzebałem swoje stare podzespoły i chcę napisać prosty program na Atmegę 8. Pobrałem najnowszy Atmel Studio (chcę spróbować coś innego niż eclipse), tworząc nowy projekt wybrałem ten typ procesora.

Problem jest z biblioteką avr/io.h - nie widzi jej. Widzi np. util/delay.h, a foldery util i avr są w tym samym folderze..

Podejrzewam że może chodzić o niezdefiniowaną wersję atmegi, cały plik io.h to switch po definicjach, jednak nie mam pojęcia jak to określić,
  • 32
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

  • 3
Mam napięcie 5v i chce za pomocą niego wysyłać sygnał analogowy na #arduino przez potencjometr. Jaka wartość potencjometry powinna być aby regulacja 0-5v była przy pełnym obrocie potencjometru? Chce tym sposobem ustawiać jakieś zmienne w arduino.

#elektronika #avr
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@PrevuD: Na tyle mały, żeby prąd płynący do ADC nie zmieniał napięcia ( ͡° ͜ʖ ͡°)
Jednocześnie na tyle duży, żeby nie marnować za dużo energii.

Czyli w praktyce tak jak pisał @AlcoMatt, bo i tak z potencjometru robisz dzielnik rezystancyjny.
  • Odpowiedz
@PrevuD: Jak ty chcesz mieć dzielnik napięcia co podnosi ci napięcie? Każdy potencjometr da ci wyjściowe napięcie z tego zakresu, w jakim pracuje. Warunkiem jest jednak pobieranie zerowego prądu z wyjścia potencjometru (to o czym pisał Feloniusz, że rezystancja potencjometru nie może być zbyt wielka). Prąd wejściowy dla ADC dla AVR jest rzędu mikroamper wiec każdy z zakresu 10-100k omów będzie ok.
  • Odpowiedz
@Fox_Murder: Dzięki, bardzo pomocne materiały i w zasadzie rozwiązanie problemu w
pliku VFD-interface, teraz sobie muszę wyobrazić jak szybko w bascomie wygenerować zestawy bitów. Najbardziej czasochłonne będzie zrobienie tablicy znaków...
  • Odpowiedz
#elektronika #avr
Mam ustawione jako wyjścia PD4, PD5, PD6 i PD7. Kiedy do PORTD wpiszę 0xF0, to na pinach 4-6 pojawia się '1', na PD7 dalej 0. Co jest nie tak? Trzeba przestawić coś we fuse bitach? PD7 nie może być wyjściem?
  • 39
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach