Nie szukałem jeszcze jak się konwertuje float do string'a, ale jak nic nie znajdziesz możesz skorzystać z pomysłu flapo213... Z tym, że w programie możesz sobie w każdej chwili rzutować dane na int. Jest to jednak bardzo obliczeniożerne, dlatego pewnie pracownicy microchipa nie poszerzyli printf o float'y. Więc możesz zrobić tak: float liczba=12.4;...
^^ Najpierw musisz ustalić, jaki masz wyświetlacz. Czy na HD44780 czy na I2C. Różnią się one liczbą podłączeń. Ten pierwszy ma więcej. Jak już tego się dowiesz, to potem musisz dobrać odpowiednią bibliotekę do posiadanego przez Ciebie typu wyświetlacza.
no właśnie [; czasem można przesyłać kody specjalne znaków albo wartości bajtów - to już zależy od konkretnego terminala. W [url=http://braypp.googlepages.com/termi... terminalu dla Windowsa <: kod znaku (czyli np backspace'a) można wysłać jako $xx gdzie xx to liczba w HEX 4\/3!!
A na innym wyświetlaczu działa? Bo może to nie jest wina wyświetlacza tylko masz błąd w programie. Jaką masz pewność że wysyłasz właściwy adres? Bo coś mi się zdaje że źle robisz. Organizacja jest owszem taka ale są to adresy: 00h - 27h (0 - 39) 40h - 67h (64 - 103) Adres w liczbach dziesiętnych jest w nawiasach. Czy Ty na pewno wysyłasz adres szesnastkowo?
HD47780.c [syntax=c]#include "stm32f4xx.h" #include "delay.h" #include "HD44780.h" __STATIC_INLINE void send_half(uint8_t mdata){ if(mdata & 0x01) LCD_PORT->BSRRL |= (1<<DB4); else LCD_PORT->BSRRH |=(1<<DB4); if(mdata & 0x02) LCD_PORT->BSRRL |= (1<<DB5); else LCD_PORT->BSRRH |=(1<<DB5); if(mdata & 0x04)...
Chyba za bardzo nie rozumiesz co się tu pisze. Spróbuj: char bufor[10]; void inline na_tekst(float liczba){ dtostrf(liczba,4,1,bufor); } main(){ na_tekst(temp); LCD_WriteText(bufor); }
najprościej chyba użyć funkcji itoa [syntax=c]itoa(liczba_int, bufor*, podstawa) [/syntax] jako bufor podajesz tablice charów, podstawa mówi jaki format liczby chcesz wyświetlić. np 2, 10 ,16 p.s nie musisz inkludować plików *.c Starczy same nagłówki
Skorzystałem z gotowych bibliotek z [url=http://www.leon-instruments.pl/]leo... Na pewno xmega działa, sprawdziłem porty podłączając diodami. Zegarów nie ruszałem. Przy wciskaniu przycisku pojawiają się losowe znaki na całym wyświetlaczu. plik hd44780.c [syntax=c] #include "hd44780.h" #include <avr/pgmspace.h> void _lcd_OutNibble(unsigned...
witam, mam problem z wyświetlaczem LCD zgodnym z HD44780 i Xmegą. Problem polega na tym że w pierwszej linii mam same kwadraty.Czyli jest to problem z internalizacją wyświetlacza(tak uważam).Sprawdziłem połączenie chyba ze 20 razy, więc raczej jest ok. Kod programu i biblioteki są z kursu Leon Instrument tak jak i samo połączenie (niestety z racji za...
Generalnie do tego służy funkcja "sprintf". Jednak ona ponoć zajmuje 2kb pamięci uC, więc nigdy jej nie używałem. Szczególnie biorąc pod uwagę to, że jest to funkcja uniwersalna. Ja osobiście robię coś takiego (dla liczb 2-cyfrowych, dla większych musisz rozszerzyć funkcję): Jeśli liczba jest mniejsza od 10 wyświetlam "0" i daną liczbę. Jeśli natomiast...
Witam. Napisalem prosty program, w którym muszę wprowadzić 3 cyfry z zakresu od 0-4. Tak się składa, że mam do dyspozycji 4 klawisze. Zrobiłem taki efekt, iż w górnej lini wyświetlacza nad modyfikowaną liczbą jest "*". Efekt ten niestety zajmuje górną i dolną linię wyświetlacza. Dlatego mam pytanie: jak zrobić na HD44780 efekt, aby edytowana liczba...
To nawet nie jest jego fragment :P Gdy zrobię tak: char text[12]; text[0] = "A" LCD_WriteText(text); Wyświeltacz normalnie wyświetli "A" problem występuje w zasadzie tylko przy liczbach.
Potrzebowałbym to do procesora at89s2051 czyli 51' i dla wysiwtlacza LCD ze sterownikiem hd44780 czyli standardowym. I to bylaby raczej liczba 4 bajtowa umieszczana gdzieś w pamięci czy ktoś ma jakiś pomysł jak wyłuskać poszczególne cyfry tej liczby i wysłąć na LCD? z góry dziękuje
No właśnie a co zrobić gdy trzeba przekonwertować liczbę zmiennoprzecinkową na tablicę cyfr(i znaków jak np "-" czy ".")??? Już nie jest tak łatwo dzielić przez 10 bo jest jeszcze część po przecinku... i jak teraz zaindeksować tablicę żeby sie cyferki odpowiednio ułożyły. Najlepiej było by chyba zrobić to wywołując jakąś funkcję przez rekurencję. Próbowałem...
nie, wyświetlać wyświela napisy ----> LCDText("0123456789abcdefghij"); działa tylko jak wyswietlic liczbę int k=1234 bo "0123456789abcdefghij" to string
mam tak: potencjometr... 10 i 100k jak je odróżnic? na jednym pisze 103 na drugim 101... które nózki do których Nie zniechęcajcie Go!!! Duża część potencjometrów jest tak oznaczona!! Więc tak: Ostatnia cyfra oznacza ile zer ma cała liczba. Tak jak przy potęgach dziesiątki :)
Nie na akumulatorze żelowym na stole. Fakt z tą liczbą to troszku przesadziłem.... Wyświetlacz jest sprawny w 100%. Inne programy się nie wysypują. andy74 czy w bascomie stos to jest HW stack ?? jeśli tak to do jakiej liczby zwiększyć bo jest 32.
Przekazujesz liczbę z tablicy, a argument funkcji na 99.9% jest wskaźnikiem i drugie tyle procent koniec wysyłania musi być zakończonym znakiem terminatora '\0', bo tego na pewno wymaga ta funkcja. [syntax=c]char buf[2] = {'\0'}; buf[0] = tab1[2]; lcd_str(buf); [/syntax]
Stosował byś dobre nawyki programowania to zauważył byś, że masz coś nie tak z kalmarami: #include <avr/io.h> #include <util/delay.h> #include <HD44780.h> #include <HD44780.c> int nrKLAW, liczba; char dekoderKLAW[10]; int skanKLAW; { nrKLAW=12; PORTB=0xFC; _delay_ms(20); if ((PINB>>4)==7)...
Napisz w P5.js emulator wyświetlacza HD44780 Emulacja wyświetlacza HD44780 w P5.js wymaga zbudowania interfejsu, który symuluje zachowanie fizycznego wyświetlacza, włącznie z obsługą charakterystycznej siatki znaków oraz metod sterujących takich jak zapisanie tekstu na wyświetlaczu. Poniżej przedstawiam podstawowy przykład implementacji takiego emulatora....
Sporo możliwości daje funkcja sprintf(). Działa podobnie do printf(), tylko zamiast wywalać tekst na standardowe wyjście, wrzuca go do stringa. char bufor[ROZMIAR]; int liczba; sprintf(bufor, "wynik: %d", liczba); W podobny sposób do stringa można wstawiać liczby całkowite, zmiennoprzecinkowe, a także inne stringi. Pozdrawiam
[syntax=c] #include <avr/io.h> #include <avr/interrupt.h> #include <avr/pgmspace.h> #include <util/delay.h> #include <avr/pgmspace.h> #include <avr/eeprom.h> #include "hd44780.h" #define LED_DATA PORTD //port pod kt�ry pod��czony jest wy�wietlacz LED #define LED_DATA_DIR DDRD//kierynek...
Poczytaj o arytmetyce stałopozycyjnej. Liczby zmiennoprzecinkowe (np. float), mimo, że wygodne przy programowaniu na PC niezbyt nadają się do używania w mikrokontrolerach.
Witam mam pytanie dotyczące odczyty liczby 24bitowej czy podana niżej funkcja jest poprawna?? [syntax=cpp] long read_data() { int32_t data; int32_t data1; long x; spi_TranByte(RDATA); data=spi_TranByte(0x00); data1=(data >> 16) & 0xFF; data=spi_TranByte(0x00); data1=(data >> 8) & 0xFF; data=spi_TranByte(0x00); data1=data & 0xFF; x= data1; return (x);...
Czy ktoś mógłby sprawdzić co tu jest źle ? #include <avr/io.h> #include <HD44780.h> #include <HD44780.c> #include <util/delay.h> int nrKLAW, liczba; char dekoderKLAW[10]; int skanKLAW; { nrKLAW=12; PORTB=0xF8; _delay_ms(20); if((PINB>>4)==16) { _delay_ms(10); if((PINB>>4)==16)....
Jeśli chcesz wyświetlać w opisany sposób tylko godziny i minuty musisz użyć 11 modułów 7-segmentowych (do wyświetlenia liczby 23 potrzebne jest 5 pozycji binarnych, dla liczby 59 - 6 pozycji). Dla pojedynczego wyświetlacza bez multipleksowania potrzebujesz jednego portu wyjściowego - więc potrzebujesz 11 portów. Alternatywą jest zastosowanie jednorzędowego...
Witam, Liczba 13 binarnie wygląda tak 00001101 , porównaj to z pozycją w tabeli "Display on/off control" i masz odpowiedź http://obrazki.elektroda.pl/2480898500_1...
Xplained z ATmega168 lub ATmega168/3281 lub lepiej 2 BC557 lub inny tranzystor PNP4 ATTiny4611 Wyświetlacz graficzny 128×64 punkty, kompatybilny z KS0108 Alternatywnie wyświetlacz graficzny z kontrolerem ST7565R1 Rezystory 330 Ω8 Wyświetlacz LCD 16×2 z kontrolerem HD44780 lub kompatybilnym1 Rezystory 1 kΩ4 Wyświetlacz 7-segmentowy, 4 cyfry1...
Czy mogę np. wyjąć wyświetlacz z najprostszego zegarka i jego użyć? Urządzenie wielkoseryjne, jakim jest zegarek, może mieć specjalnie dostosowany wyświetlacz, z niestandardowym interfejsem, do tego bez opisu - więc raczej nie. Natomiast jest dostępnych wiele typów wyświetlaczy z niewieloma standardowymi interfejsami, do których często są dostępne...
Widać mam starszą wersję Atmel Studio, a co za tym idzie pewnie starszą wersję toolchaina i generuje ona krótszy kod wynikowy. Spróbuj zamienić funkcje void show_voltage(unsigned char channel) void show_current(unsigned char channel) Na te które podałem niżej. Pozbyłem się części obliczeń na liczbach 32bitowych. [syntax=c] void show_voltage(unsigned...
Witam. Podłączyłem poprawnie LCD (2x16 znaków na sterowniku HD44780) z ARDUINO UNO. Napisałem prosty program, który ma zliczać liczbę wywołań pętli i wyświetlać ją na wyświetlaczu: #include <LiquidCrystal.h> LiquidCrystal lcd(7, 6, 5, 4, 3, 2);// LiquidCrystal(rs, rw, enable, d4, d5, d6, d7) int i; void setup() { }...
Witam. Już kiedyś udało mi się bez problemu odpalić bibliotekę do HD44780, lecz była to wersja na 2 linie i wszystko śmigało, tutaj niestety jest na 4 i działają tylko 2 pierwsze. Co jest nie tak? [syntax=c] LCD_Initalize(); _delay_ms(20); LCD_Clear(); LCD_WriteText("tekst1"); LCD_GoTo(0,1); _delay_ms(20); LCD_WriteText("tekst2"); LCD_GoTo(0,2); _delay_ms(20);...
Interfejs wyświetlacza nie nadaje się do sterowani na większe odległości. Nie wiem, co to jest "optotranzystor". Właściwe rozwiązanie w takim przypadku - to wyposażenie wyświetlacza w maluśki mikrokontroler za 2 zł i połączenie go z głównym urządzeniem interfejsem np. RS485. Urządzenie będzie wywyłało polecenia wyświetlania do uC, a ten będzie sterował...
LCD z kontrolerem (np. HD44780) rzeczywiście może działać przy mniejszej liczbie pin ( http://mikrokontrolery.blogspot.com/2011... ), zwłaszcza przy wykorzystaniu shift register (rejestr przesuwny). Powstały również projekty sterowania LCD przez 1pin ( http://www.microchip.com/forums/m291733.... ). Poniższy wyświetlacz...
proponowałbym koledze samemu sobie napisać procedurę konwersji przynajmniej będzie to dla ciebie jakąś formą nauki a zamiana jest prosta i wygląda tak: 1) obliczasz resztę z dzielenia swojej liczby przez 10 i wstawiasz na koncu bufora znakowego dodatkowo powiększając o 0x30 (czyli z liczby robisz znak odpowiadający tej wartości) 2) dzielisz liczbę przez...
Sekwencja inicjalizacji wywietlacza jest nastepujaca: 1. Wlaczenie zasilania 2. Oczekiwanie min. 45ms (wewnetrzna inicjalizacja) 3. Wyslanie komendy : RS R/W D7 D6 D5 D4 0 0 0 0 1 1 przed ta operacja nie wolno sprawdzac znacznika busy 4. Oczekiwanie min 4.1 ms 5. Powtorz poprzednia komende 6. Oczekiwanie min. 100us 7. Powtorz poprzednia komende 8. Wyslanie...
Wiem Patrzyłem cenniki 40 zyta w górę to lekka przesada jak za 1 płytke ;\ Może kilka osób potrzebuje taka płytkę wtedy mogli byśmy ewentualnie złożyć zamówienie na większą liczbę i by nas taniej wyniosło to jedyne pomysły jakie mam na chwile obecną.
#define LCD_X 16 //liczba znaków w linii wyświetlacza #define LCD_Y 2 //liczba wierszy wyświetlacza A to kolega zmienił? W C nie ma krótkich programów do lcd;) Jak powiesz na jakie piny ten lcd chcesz podłączyć, to Ci skompiluje sotf i podeślę hex'a, będziesz mógł testować:)
case 'D': LCD_GoTo(--index,1); LCD_WriteText(" "); index++; goto OUT; po spacji -- indeks a nie index++. Skoro musisz ze ci wyświetla ostatnio zapisaną liczbę to najprawdopodobniej niedziała ci skok goto. poza tym na wyświetlaczu kasujesz a co z buforem do przetrzymywania danych co mają być wysłane.
Ja bym użył coś takiego: http://ww1.microchip.com/downloads/en/De... -Mały -Ma przetwornik A/C -Można zwiększyć liczbę pinów do wykorzystania korzystając z wewn. oscylatora -Może nie starczyć pinów do obsługi wyświetlacza (no z hd44780 chyba ciężko... ale z nokii 3310 chyba by się dało:D) lub: http://ww1.microchip.com/downloads/en/De...
Napisałem taki program, na celu ma on wyświetlenie na LCD liczby w formacie XX.XX Wykorzystując funkcję "sprintf": [syntax=c] #include <avr/io.h> #include <util/delay.h> #include <stdio.h> #include "HD44780.h" #include "keyb.h" char buf[32]; volatile float a=22.12; int main(void) { DDRD= 0b00111100; PORTD=0b11101100; LCD_Initalize();...
Hej mam pare pytan odnosnie kalkulatora ktory robie na zaliczenie na studiach. Generalnie prawie wszystko dziala ale mam pare problemow wymienionych + istotne fragmenty kodu. Programik na Atmege8, uzywam AVRGCC + hapsim, biblioteka wyswietlacza hd44780. 1) Dlaczego po 32768, wyswietla liczby na minusie / nie wyswietla wiekszych (to samo z -32768) int...
To jest ta sama liczba co dziesiętna, tylko inaczej zapisana... Prawdopodobnie chodzi Ci o przetworzenie tej liczby na tekst. Dodano po 4 Zajrzyj tutaj, chodzi mi o drugi post: Dodano po 31 A wyświetlenie przecinka to zupełnie inna bajka :)
Witam! Meczę od jakiegoś czasu jedna rzecz i nie mogę przez to przebrnąc może ktoś będzie wiedział. Chce przesłać strumień na wyświetlacz LCD wykorzystując do tego funkcji printf albo jakiejś podobnej bele by miała takie same możliwość. Zrobienie czegoś takiego na atmege to kilka linijek i działa. Dla przykładu poniżej przykładowy kod. I teraz nie umiem...
A ja z uporem maniaka robię kod na przerwaniach: #include <stdint.h> #include <avr/io.h> #include <stdlib.h> #include <avr/interrupt.h> #include "HD44780.h" //w Project->configuration option ustawiamy freqency 16000000 #define LICZBA_KANALOW 4 //cztery kanały- tu można zwiększyć ilość kanałów #define NAPIECIE_AKU_MIN11.0...
To znaczy że ty masz rzeczywiście inny niż ja ale się tym nieprzejmuj. Ściągnij sobie manuala do hd44780 i tam jest taka tabelka z komendami. Jestw niej tam taka sekcja przy ustalaniu trybu(4 bitowy) i jeszcze takie dane Jak N - liczba wierszy i F rodzaj wyświetlania(5x8 lub 5x10). F zostawiasz na 0 a N dajesz 1(dla dwuliniowego). Nie martw się jak...
co masz na myśli przez procek z mozliwoscią kontroli 3 lcd ??? każdy procek może sterować ograniczoną liczbą LCD zależna od liości dostępnych portów przy transmisji 4 bit ( zakładam że chodzi od kontroler HD44780) 4 line do danych 2 sterujące (r/w i r/s) po jednej lini enable na każdy lcd ( dla at mega32 dip ) jest dostępnych 32 pin - 6 pin jak wyżej...
Witam, mam problem z uruchomieniem programu do zliczania impulsów na T1 przez 1 sekundę. Wyświetla mi ciągle zero. Co źle ustawiłem z Timerami ?? Atmega 32 [syntax=c] #define F_CPU 1000000UL #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include <hd44780.h> volatile unsigned char licznik = 0; //liczba...
Podczas wprowadzania wyświetlacza LCD w tryb 4 bitowy należy zachować odpowiednią sekwencję startową. Jeśli w którymś miejscu będzie za szybko, wyświetlacz pozostanie głuchy na sygnały. Poza tym podczas trybu 4-bitowego powinno się sprawdzać flagę BUSY - po przesłaniu każdej porcji 4-bitowej. Czyli sprawdzamy flagę dwukrotnie przy przesyłaniu każdego...
Fakt, nie było pytania. Tylko sugestia- czy można to zrobić inaczej? Bo w zasadzie robię to dotychczas tak jak to opisał mirekk. Z całej dyskusji dotarło do mnie tylko to że można spróbować zastosować bufor- czy pierścieniowy czy FIFO to tak dokładnie nie zrozumiałem. Jakąś implementację bufora w C ściągnę z netu i będę próbował zrozumieć a potem przerobić...
jak byś zerknął do tej dokumentacji, tak jak mówiłeś, to tam pod koniec jest taka tabela z literkami, łatwo można zauważyć ze literom odpowiadają ich kody ascii, wysyłając więc na wyświetlacz 'a' wysyłasz tak naprawdę do niego 0x61, jak zerkniesz w w/w tabelkę to jest to kod znaku 'a'. Literki "ł" zauważ tam nie ma, po wprowadzeniu jej do pamięci jej...
Witam. Od jakiegoś czasu staram się w celach "samoedukacyjnych" zrobić coś na wzór zegarka. Problem polega na tym, że nie moge odmierzyć dokładnie 1 sekundy. Starałem się rozwiązać problem na kilka sposoów. jaklepszy efekt dała obsługa przerywania, lecz błąd to w dalszym ciągu kilka sekund przez noc ;p Nie chcę stosować żadnych zewnętrzych zegarów....
Cześć, udało mi się podłączyć wyświetlacz LCD do mikrokontrolera Atmega8A. Bez problemu mogę wyświetlić tekst, ale nie udaje mi się wyświetlić zmiennych. Próbowałem użyć LCD_WriteData i LCD_WriteCommand, ale to nic nie pomogło. Dlaczego wyświetlają mi się tylko jakieś dziwne znaczki, jak to naprawić i dlaczego tak się dzieje? Z góry dziękuję za pomoc....
Dziękuję za odpowiedź. Sciągnąłem Twoją bibliotekę i zmodyfikowałem plik lcd.c, ustawiłem tak: #ifndef LCD_PORT #define LCD_PORTPORTD//port wyswietlacza, interfejs 4 bitowy #endif //podlaczenie do 4 starszych bitow portu #ifndef LCD_EN #define LCD_ENPD3//Enable #endif #ifndef LCD_RW #define LCD_RWPD2//R/W #endif #ifndef LCD_RS #define LCD_RSPD1//RS...
Nie ma schematu to nieco utrudnia i trzeba się wypytywać. RW wyświetlacza masz do masy? Jak masz podłączone linie D4 - D7 od LCD? Żeby było mniej problemów powinny być podłączone np. D4 - PD4 do D7 - PD7. Wszystkie ustawienia startowe typu ustawienie portów na wejście lub wyjście zrób na początku po etykiecie reset. Będzie mniej zagmatwane. Co do samej...
Witam! Tak jak w temacie staram się zrealizować za pomocą Arduino listę na wyświetlaczu LCD 16x2 (HD44780) . Problem w tym, że jednym z celów było użycie jak najmniejszej liczby przycisków. . . . . Trzy przyciski, które mają kontrolować wyświetlane treści to Pin8(Enter), Pin9(Up), Pin10(Down) . Po uruchomieniu opcji na poziomie pierwszym chciałbym...
[syntax=c] #include <avr/interrupt.h> #include "hd44780.h" #include <string.h> #define KB_PORT_OUT PORTB #define KB_PORT_IN PINB #define PIN_LED (1<<PC5) //**************************************... void port_init(void) { DDRB = 0x0f; //Port klawiatury - stan niski wyjście , wysoki wejście PORTB = 0xff; //właczenie...
Ale i tak wielkie dzieki. Po dodaniu tych opoźnień do mojego programu wyświetlacz zaczął fajnie wyświetlać wiec postanowiłem napisać procedurę wyświetlania zmiennej i wykodziłem coś takiego: wyslij_znak: sbi PORTC, RS rcall strobe cbi PORTC, RS ret wyslij_cyfre: add data, const rcall wyslij_znak sub data, const ret dzielenie_10: mov r21,...
A czemu by nie użyć jakiegoś wyświetlacza LCD? Może najprostszy na kontrolerze HD44780 albo jakiś kolorowy np. od tel. nokia 6100, który jest dość dobrze opisany i oprogramowany? Wedy nie martwisz się ilością nóżek a i będziesz dużo więcej w stanie wyświetlić.
Tu wykorzystujesz 7 linii, do zasterowania wyświetlacza 7 segmentowego, do 6 znakowego LCD na HD44780 potrzebowałbyś sześciu. No tak, tylko te wspomniane już gabaryty... :) Skąd wiesz, która z wyświetlanych cyfr jest "pierwsza"? Ależ z tym nie ma żadnego problemu. Przecież podczas pomiaru i tak muszę obserwować miernik czy równo (i czy w ogóle) "się...
tylko tyle i już? pytam się bo nie che bez potrzeby odkręcać prędkościomierza [syntax=c] #include <avr/io.h> #include "HD44780.h" #include <util/delay.h> #include "Przerwanie_INT0.h" #include <avr/interrupt.h> #include <math.h> volatile uint8_t flaga=0; volatile uint16_t liczba=0; volatile uint16_t licznik=0; volatile uint16_t...
Witam, mi niestety wyświetlają się jedynie prostokąty i nic więcej. W kodzie w miejscu x wstawiam np. void waitms(char x1) czy inną liczbę od 0 do 255 ale nic się nie dzieje. Jestem jeszcze zielony w tej zabawie więc nie wiem czy to jest prawidłowo. Proszę o instrukcję krok po kroku jak prawidłowo mam zaprogramować ten wyświetlacz w eclipse. Pozdro.
Witam. Wiem że tematów dotyczących RC-5 było już wiele, jednak nie chciałem używać gotowego programu, tylko samo coś napisać aby lepiej zrozumieć. Mój układ złożony jest z atmegi8 tsop1736 i wyświetlacza LCD, a jego zadaniem jest odebranie instrukcji z pilota i wyświetlenie jej na ekranie. Oto kod mojego programu: tu był kod Nie potrafię zlokalizować...
Ja stosuje taki kod // db7 - portc.7 // db6 - portc.6 // db5 - portc.5 // db4 - portc.4 // db3 - nie uzywany // enable - portc.2 // R/W - portc.1 // RS - portc.0 #define E1 PORTC |= 0x04; #define RW1 PORTC |= 0x02; #define REG1 PORTC |= 0x01; #define E0 PORTC &= 0xfb; #define RW0 PORTC &= 0xfd; #define REG0 PORTC &= 0xfe; char lcd_buffor[2][16];...
Najprościej to nie używaj floatów. Ja nie używam, więc w to nigdy nie wnikałem bawiąc się w C dla AVR, ale tu jest opis jak to zrobić: https://scienceprog.com/how-to-sprintf-f... Czujnik ma dokładność +/- 2oC, ADC w AVR jest 10bit, to po prostu nie ma sensu. Jak już bardzo chcesz mieć coś po przecinku na wyświetlaczu to sobie...
Tak z itoa też próbowałem, ale itoa działa mi tylko dla typu int, dla typu long int, long long int, też nic nie wyświetla. Wyświetla natomiast dla typu unsigned int, ale zakres jest jak dla zwykłego int. :| Tutaj drugi przykład: [syntax=c]#define F_CPU 1000000l #include <avr/io.h> #include <util/delay.h> #include "HD44780.h" #include <stdio.h>...
Zapewne temat dotyczy wyświetlacza opartego na HD44780. Muszę Ciebie zmartwić niestety mamy możliwość edytowania tylko pierwszych 8 znaków. Na pocieszenie mogę Ci powiedzieć iż jeśli w jednej chwili nie wykorzystujesz więcej niż te dostępne to można pomiędzy ekranami definiować kolejne nadpisując nie wykorzystywane. W ten sposób mam nie ograniczoną...
dla markus555: każdy wyświetlacz standardu hd44780 wygląda tak samo jesli chodzi o wejścia - 16 pin, D0-D7 wejscia danych, więc od strony technicznej podłacza sie je dokładnie tak samo (wszystkie). inaczej wygląda tu już sprawa softu, bo zmieniają sie wartości które wpisuje sie do rejestru danych (w praktyce zwiększa się tylko liczba danych wpisywanych...
1)Z wykorzystaniem własnego zestawu znaków jest ten problem, że tylko 8 można zdefiniować,a jak chciałbym wyświetlać cyfry to potrzeba niestety 10. Definiujesz tylko te cyfry, które chcesz wyświetlkić, więc możesz wyświetlić dowolnie długi ciąg składający się z 8 różnych znaków. Przed wyświetleniem każdej liczby/tekstu trzeba by wgrać nowy zestaw znaków...
Ekran podpięty do ATmegi, na sterowniku HD44780, bo w terminalu można zmienić co ma wyświetlać :) Mimo to, i tak wysyłane są jedynie znaki ASCII (lub kolokwialnie mówić wartości 8bitowe) A czego się spodziewasz? Znaki o kodach <32 są znakami specjalnymi, niedrukowalnymi. Jeśli wysyłasz na LCD liczbę to najpierw musisz dokonaćjej konwersji do ASCII,...
Może się czepiam i demotywuję początkujących, ale Atmega328 :!: do wyświetlania tekstu na HD44780?!? Rozumiem że rzadko wszystko się wykorzystuje, ale chwilami łapię się za głowę z lekka... Widziałem kiedyś implementację sterownika programowalnego z cronem (ulepszonym!), systemem alarmowym, telnetem, szyfrowaną komunikacją i paroma innymi bajerami -...
Program wyświetla mi zero (po liczbie) jednocyfrowej np. zamiast 3 jest 30 (oczywiście wartość zmiennej jest poprawna tylko tak przetwarza chyba itoa). Reszta liczb jest wyświetlana poprawnie. Nie mogłem znaleźć odp na elektrodzie. Co zrobić żeby była wyświetlana liczba jednocyfrowa jako pojedyncza liczba a nie 01 czy 10 Jeśli potrzeba to kod programu...
Witam, Ponizszy program wykorzystuje przetwornik ADC Atmega32 za pomoca potencjometru zmieniam przedziały i program wyświetla mi liczby od 0 do 255 bo jest on 8 bitowy i tutaj wszystko działa ok lecz nie mogę wyświetlić wyniku napięcia czyli zamienic rezultatu wyświetlanego z bitów na napięcie , jest doprowadzone 5V zasialne z USB. Próbuje wykonać to...
Aha, rozumiem, rozwiązania ciekawe więc wypróbuję oba w takim razie, natomiast w drugim przypadku nie mam kontroli nad liczbą miejsc po przecinku w zmiennych liczbowych, tak? // Już wiem, zapomniałem jak działa printf w C :P Ale co ten snprintf przyjmuje jako 'format'? :P Aha, i mam problem z wyświetleniem zmiennej float :P Czy to nie było coś typu:...
Witam Znów mam pytanie dotyczące kodu który pozwala na współbieżną obsługe lcd z main i przerwania przedstawiam tylko plik .c [syntax=c] #include "LCD_trans.h" #include <avr/interrupt.h> #include <string.h> #include <util/atomic.h> #include "defines.h" #include "hd44780.h" #include "Alloc_safe.h" #include "PinMacros.h" typedef struct...
Kto ci każe czekać pomiędzy wysłaniem kolejnych danych na port?. Wsadź w przerwanie, wysyłaj na raty co określoną ilość czasu. Ubędzie ci MIPSów?. W tedy wypadało by mieć flage prawidłowych danych w buforze. I to przerwanie na czas wyswietlania zuzyje 100% czasu procesora przez wieeeele milisekund?...:/ Co robisz w przypadku wyświetlania liczb bez...
A spróbuj testowo wyświetlać dane stałe - nie pobieraj ich z funkcji, tylko po prostu ustaw jakieś litery/liczby. Zobaczysz czy dalej się sypie. Bo może układ sypie się w obsłudze wyświetlacza LCD. Miałem kiedyś taki przypadek, że LCD sypał się losowo (wylądało jak zakłócenia) - były źle ustawione timingi danych docierających do LCD (za krótkie trzymanie...
Witam, w ramach nauki programowania uC, znalazłem kod pozwalający na wyświetlanie temperatury z DS18B20, na wyświetlaczu 1602A. Jako że na samym przeklejeniu kodu pewnie zbyt wiele bym się nie nauczył, użyłem nieco innego termometru(dokładność nie 0,1, a 0,5*C), zmieniłem układ w jakim ma się wszystko wyświetlać, zastąpiłem float przez int zmieniane...
Ja sobie wykonałem podobny cuś do nawijarki trafo. 3 układy CD4017 + 30 LED'ów Zworkami ustawia się liczbę, po przekroczeniu której wyłącza się przekaźnik od zasilania silnika do wycieraczek. I według mnie, zbudowanie czegoś na procku, to pójście na łatwiznę. Oczywiście, czasem układy MSI wymiękają np. w sterowaniu LCD'ka z HD44780 Wiem, bo sam programuję....
wiem napewno ze jest na hd44780 a wyprowadzen jest 14
Dziękuje GrEG0 za naprowadzenie na prawidłowe rozwiązanie, natomiast bardzo przepraszam, że poruszyłem wielkie ego Pana Freddie Chopin. A dla ludzi któży dopiero zaczynają z avr i mają podobny problem podaje kod który działa prawidłowo: #include <stdint.h> #include <avr/io.h> #include <inttypes.h> #include <util/delay.h> #include...
https://obrazki.elektroda.pl/3845985100_... https://obrazki.elektroda.pl/1095475900_... Kiedy zbliżała się tegoroczna jesień i słońce wschodziło coraz później, postanowiłem zbudować budzik świetlny - urządzenie, które o zadanej godzinie włącza stopniowo rozjaśniające się światło. Nawet, jeśli nie obudzi ono użytkownika,...
Zaczełem od nowa - od menu. Po naciścięciu 5 przycisku digital 8 ma się zapalić menu wyboru i zapala się tylko jak puszczę przycisk gaśnie. I w menu ma być wybór ilości graczy i zatwierdzenie wyboru. Pomocy, jak to zrobić bo ostatnio mam godzinę, dwie czasu.[syntax=c]//Menu //* Wybór Ilości Graczy //* 2 //* 3 //* 4 #include <Wire.h> #include <hd44780.h>...
Czy możesz podać procedurę obsługi wyświetlacza LCD opartego na sterowniku HD44780 dla Arduino? Oczywiście! Przedstawiam podstawową procedurę obsługi wyświetlacza LCD opartego na sterowniku HD44780 z użyciem płytki Arduino: 1. Przygotuj potrzebne materiały: - Płytkę Arduino (np. Arduino UNO) - Wyświetlacz LCD oparty na sterowniku HD44780 (np. 16x2)...
Przeczytałem, przebudowałem (jak i również zrobiłem porządek), pogrzebałem trochę w kodzie i gdy zamiast DS1820 wsadzę potencjometr to ładnie mi się wszystko wyświetla, z DS1820 mam 0 a gdy dotknę go palcem to dochodzi do 2(taki sam objaw jest gdy mam podciągnięty do + rezystorem czy nie.). dodaje schemat i kod: http://obrazki.elektroda.pl/2539060200_1...
Funkcja createChar pozwala tylko na 8, czy gdy zastąpie Arduino MEGA na Arduino DUE pozbędę się ograniczenia pamięci ? Nie, ponieważ ilość znaków, które można jednocześnie przechowywać w wyświetlaczu LCD zależy od wielkości pamięci CGRAM, do tego przeznaczonej. Dla kontrolera typu HD44780 będzie to 8 znaków. Póki co wykorzystuje 2 zestawy na przemian,...
Witam Chce stworzyć prosty analizator widma oparty na ATmedze oraz wyświetlaczu LCD HD44780. Płytkę z filtrami stworzyłem wcześniej i przebadałem oscyloskopem i wszystko działa jak należy. Problemy zaczęły się dopiero przy programowaniu procesora. Poradziłem sobie z obsługą wyświetlacza i, z pomocą forumowiczów, z obsługą ADC. Mam teraz problem z przerwaniem....
Witam drogich forumowiczów. Zwracam się do was z pytaniem na pewien problem, który można powiedzieć rozwiązałem ale jest on może przez swoją prostotę zbyt rozbudowany. Zaznaczę iż przeglądałem wiele tematów i odpowiedzi nie znalazłem. Otóż problemowo polega to na tym iż deklaruję zmienną w programie np int a. Potem dokonuję jakiś obliczeń na tej zmiennej...
Witam, Mam takie pytanko odnośnie konkretnego wyświetlacza LCD 2x16 na kontrolerze HD44780. Jego datascheet: http://www.seguro.pl/sklep/?zobacz=2143&... Jak rozpoznać, niepodłączając jeszcze do układu, kierunek wyświetlania znaków?? Chodzi mi o to, czy piny od LCD patrzac na wyswietlacz tego modelu mają byc "na górze" czy "na dole"? Piny mam...
Witam Niedawno zacząłem swoją przygodę z AVR'ami. Po zapoznaniu już trochę z tematem chciałem wyświetlić kilka rzeczy na LCD, lecz napotkałem pewien problem. Nie wiem czemu jak wyświetlam dowolny string o długości N, który jest zapisany w tablicy o tej samej długości, to na końcu otrzymuję 1-2 różne znaki (najczęściej chińskie). Co ciekawe znaki chińskie...
Witam Po wielu próbach dalej nic nie działa Znalazłem nową wersje artykułu z którego korzystałem (w załączniku) 1-wire.h [syntax=c] /* * _1_Wire.h * * Created: 2011-10-23 02:08:12 * Author: Darek */ //#ifndef 1-WIRE_H_ //#define 1-WIRE_H_ //#endif /* 1-WIRE_H_ */ #include <avr/io.h> #define PIN_1WIRE 0 #define PORT_1WIRE PIND #defineOUT_1WIRE_LOWPORT_1WIRE&=~(1&...
Witam, Dziękuję za poprzednie odpowiedzi. Problem jest trochę inny, jednak pasuje do tematu. Na ATmega328p przy wysyłaniu znaków i odbieraniu przez terminal pokazują się inne znaki niż wysyłam, na LCD całkiem krzaki. Przy zmianie kodu znaku na liczbę wypisywane są zawsze 2 liczby np. Dla q wypisywane jest 6 i 254. Problem jest przy odbiorze znaku i...
(at)ElektrodaBot Poszukaj opisów wyprowadzeń wyświetlaczy LCD, które mają 21 wyprowadzeń. Bezpośrednia odpowiedź na pytanie Wyświetlacze LCD z 21 wyprowadzeniami zwykle nie stanowią jednolitego standardu. Liczba wyprowadzeń może wynikać z dodatkowych funkcji (np. rozbudowany interfejs, podświetlenie, linie konfiguracyjne). Aby znaleźć ich precyzyjny...
Można zaradzić zmieniając funkcję której używasz do wyświetlania tekstu. Dodaj do niej sprawdzanie czy bieżący znak wychodzi za maks. szerokość (doo tego przyda ci się stała LCD_WIDTH) i jeśli tak to przechodź do kolejnego wiersza funkcją LCD_GoTo zadeklaruj sobie dwie zmienne globalne: unsigned char LCD_x, LCD_y; dopisz na początku funkcji LCD_GoTo...
Witam. Chciałem Wam przedstawić krótki opis taniego 8 kanałowego analizatora logicznego opartego na mikrokontrolerze CY7C68013A firmy Cypress. https://obrazki.elektroda.pl/8811604100_... Urządzenie to można zakupić z chińskich portali aukcyjnych w cenie od ok. 7$ z przesyłką lub np. z rodzimego portalu aukcyjnego za ok. 40zł z przesyłką....
co za różnica co to za uC ? Jest to AT91SAM7S256, o DBGU i PDC napisalem jako ciekawostkę. Zanim zabralem się za pisanie wlasnej itoa() przejrzalem forum. Jak to jest z dodawaniem znaku końca ? Przenosilem dodawanie znaku końca do bufora dopiero po odwróceniu kolejności, nie pomoglo. Próbowalem bez odwracania kolejności znaków, nic z tego, ciągle wyświetlają...
Witam, zgodnie z dokumentacją dołączyłem rezystor o wartości 2,2k (z innego tematu na forum), rozumiem, że wyjściem czujnika do przetwornika A/C atmegi jest końcówka ADJ ? Problem mam polega na tym, że przy takiej konfiguracji na LCD wyświetla mi się jakaś kosmiczna liczba... Nie mam pojęcia gdzie leży błąd. Zaimplementowałem wzór z dokumentacji i podstawiłem...
Dzięki wyświetlacz działa. Potrzebuję jeszcze porady w moim programie: [syntax=c]/* * Funkcja.c * * Created: 2015-06-04 21:05:37 * Author: Grzegorz2121 */ #define F_CPU 1000000UL #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include "HD44780.h" #include "HD44780.c" volatile uint8_t cnt=0; char a [4]; char...
bez urazy, kolego olekewaagata, zanim zaczniesz kogoś pouczać przeczytaj tekst ze zrozumieniem! ;)) Autor wątku miał problem z propagowaniem przeniesienia - moja odpowiedź dotyczy DOKŁADNIE zalecenia, jaką instrukcją uwzględnia się przeniesienie. A podany przeze mnie przykład dotyczy sumowania, z jakim ma problem autor - czyli dokładnie liczby _16bit_...
Zrobiłem kod wzorując się tym razem na tym co radzio udostępnił ( http://radzio.dxp.pl/hd44780/ ). Na AVR biblioteki mi działają mimo że pisałem tak samo... Nadal nie działa... Po wrzuceniu takiej konfiguracji: E | RS | D7 | D6 | D5 | D4 0/1 | 0 | 0 | 0 | 1 | 0 0/1 | 0 | 0 | 0 | 0 | 0 0/1 | 0 | 1 | 1 | 1 | 1 0/1 | 0 | 0 | 0 | 0 | 0 0/1 | 0 | 0 | 0 |...
hd44780 przykład hd44780 zakłócenia zasilanie hd44780
sterownik regulator zaworu ampio pilot mycie denaturat
momenty dokrecania ustawienie czasu honda civic
Schemat zasilacza BN44-00497B do telewizorów Samsung Lista kanałów TV w Polsce - skąd pobrać?