Rozumiem, że tych slave'ów jest kilka i tylko z tego jednego krzaczy, a z pozostałych slave'ów wyświetla poprawnie ? Jeśli tak to prawdopodobnie stos najeżdża na zmienne w programie mastera.
Tak tylko wyświetla mi A01 - co robię żle?
Zacznij od vgaxua. Będzie ciężko, ale powinno być wykonalne.
dzięki za podpowiedzi. zdecydowałem się jednak na wykorzystanie sprzętowej komunikacji UART między dwoma kontrolerami, jest prosta w obsłudze i daje większe możliwości obsługi wyświetlacza. Takie rozwiązanie stwarza kolejne wyzwanie dla mnie. Gdyż do atmega sterująca wyświetlaczem wyświetlać będzie sześć różnych zmiennych. Proszę o podpowiedzi i sugestie...
Że się szukać nie chce, może nie wiesz, że jest wyszukiwarka, ale że się nawet nie spojrzy na tematy na stronie głównej to już kompletnie nie rozumiem. Podobne pytanie było zadane: [url=http://www.elektroda.pl/rtvforum/to... zmiennej na LCD. Rozumiem, że jesteś tu nowy, ale czy nowego, czy starego obowiązują te same zasady, a...
Dummy_timer nie robi niczego mądrego. Funkcja zwraca zmienną static unsigned int ticks, a wywołana z parametrem TIMER_UPDATE zwiększa jej wartość o 1, wyświetla kropkę w konsoli i czeka 1ms. Do testów jest ok, docelowo można użyć timera.
... Sprawdzasz przed wyświetleniem czy zmienna jest mniejsza od 10, jeśli tak ustawiasz odpowiednią pozycję za pomocą "Locate x.y" i wyświetlasz. Jeśli nie to wyświetlasz w domyślnym miejscu. Sposób dobry, tylko trochę kłopotliwy(ciągłe porównywanie zmiennych) :( Inny sposób to: 'Zmienne odczytane z PCF-a i skonwertowane instrukcją makedec()...
Dzięki za przykład działa dobrze, tylko nadal mnie zastanawia czemu to nie działa, tym bardziej że ten kod powyżej jest o wiele łatwiejszy. Chyba wartość kodu ocenia się w pierwszej kolejności na podstawie jego skuteczności, a nie tego, czy jest łatwiejszy. No bo co z tego, że jest łatwiejszy, jeśli nie działa? Przykład, który podałem nie jest mojego...
Witam Chciałem zbudowac układ który liczył by 0-9 i wyświetlane to było na siedmiosegmentowym wyświetlaczu... .......... prosze o pomoc i o jakies proste wytłumaczenie moich błędów. myslalem jeszcze o robieniu tego za pomoca rozkazu INC i dodawania tylko nie wiem jak zawartośc rejestru wystawic na wyjscia z gory dziekuje za pomoc pozdrawiam Tu masz...
Po to poradziłem Ci aby użyć do tego tablicy aby w łatwy sposób, przy użyciu pętli For...Next można było nią zarządzać (w tym i wyświetlać). Dim Seq(5) As String * 10 Dim Tekst As String * 10 Dim Index As Byte Tekst = "Aktualna" For Index = 4 to 1 Step -1 Seq(index + 1) = Seq(index) 'przesuwanie 4 do 5, 3 do 4,... Next...
po prostu do nauki działania timera ma to symulować przychodzące impulsy i ich zliczanie zakładałem np. 1 impuls zapis do zmiennej, następnie dwa i zapis sumy do zmiennej itd. - taki prymitywny encoder przy okazji wyświetlanie wyników na LCD
A jak to wyświetlasz? Czy funkcja wyświetlająca jest przystosowana do pracy ze zmiennymi uint32_t, a nie przypadkiem zwykłymi int?
O matko, Freddy. A co to ma wspólnego z histerezą? Spróbuj tak: If I+2 < J Then J = I End If If I > J+2 Then J = I End If LCD J
Dokładnie. Ta atmega pewnie pokazuje ci wartość prądu, więc powiedzmy że co 1s dodajesz jego wartość do jakiejś zmiennej. Przy wyświetlaniu dzielisz ją przez 3600. Jeśli chodzi o komunikat, to w miejscu gdzie masz wyświetlanie robisz warunek że "jeśli temp. większa niż ileś tam to wyświetl to zamiast tego" Dobrym zwyczajem jest wklejenie softu
Tomq podpowiem Ci, że nie mając debuggera możesz sobie znacząco zabawę z uP ułatwić robiąc "debug" przy użyciu np. wyświetlacza albo uart. Po prostu wyświetlasz sobie wartość zmiennej jaka Cię interesuje i porównujesz jej wartość z założeniami działania danego fragmentu kodu. I przede wszystkim staraj się ZAWSZE doprowadzać do tego, aby po kompilacji...
Myślę, że już otrzymałeś odpowiedź, jak to zrobić. Podejrzewam, że zmienną modul_depth masz zadeklarowaną jako uint16_t ...dlatego uint16_t musisz zamienić na uint32_t na czas tych operacji, np. przez rzutowanie typów więc powinno być: [syntax=c] procentowo=((uint32_t)modul_depth*1000)/... //wspolczynnik zmian [/syntax] ponieważ bez rzutowania kompilator...
Prawdopodobnie źle konwertujesz zmienne ,które przychodzą z DS1302. Warto podłączyć analizator i zweryfikować jak się ma to co wyświetla wyświetlacz do tego co odbiera i wysyła atmega 328 .
Przecież to, co pokazałem, tak samo dobrze zadziała i dla 10 stanów - wystarczy zmienić typ zmiennej z _Bool na uint8_t, zapisywać w niej numer aktualnie wyświetlanego czujnika i zmienić warunki: [syntax=c]if (czujnik != x && !(PINC & 1 << x)) { czujnik = x; // wyswietl } if (czujnik != y && !(PINC & 1 << y)) { czujnik...
Ale tu nie ma co sprawdzać. Tak się nie robi kodów. Że się pisze 1000 linijek a potem daje na forum do sprawdzenia osobom które nawet nie mają na czym go sprawdzić. I muszą się wszystkiego domyślać. Jak już był pisane wyżej: wywal wszystko poza wyświetlaniem. Zrób np. wyświetlanie zmiennej zwiększanej co sekundę o 1. I wtedy zobacz co się będzie działo....
http://obrazki.elektroda.pl/3303656700_1... Wariometr, Atmega168 + LCD Nokia 3330 / 3310 + Bosh BMP085 Witam. Przedstawiam projekt, który zrobiłem na zaliczenie na studiach, a tym samym chciałem, aby był użyteczny. Wariometr elektroniczny służy do pomiaru prędkości pionowej. Można go stosować do wolnego latania paralotniarzy. Polega...
Ok, dzięki. Ale problem na tym się nie skończył. Teraz po naciśnięciu switcha atmega zachowuje się nietypowo *********************** https://www.dropbox.com/s/wsodhlckfw60le... *********************** Zamieszczam film. Wgrałem kod od kolegi (at)UP :> nie dodaje do zmiennej 1 "impulsu" a zamiast tego, początkowo 5 a potem...
Funkcja (w takiej ostatecznej formie jak przedstawiona przez Ciebie), wygląda na poprawną, tzn. powinna działać tak jak tego oczekujesz, chociaż sprawdzałem pobieżnie i głowy nie dam :D "Poprawność" rozumiem tu w sensie użytej sekwencji instrukcji. Przypuszczam, że kłopot może wynikać z zależności czasowych. Robisz dużo operacji na LCD. Być może użyte...
Troszkę się nie zrozumieliśmy, miałem na myśli wyświetlanie napisu dopiero na końcu tak aby nie powielać tego polecenia print. Wtedy zamiast print przepisywałbym do zmiennej jedynie numerek a na końcu (po całym select case) sklejał w jednym poleceniu print całość, czyli przedrostek ze stałej i numerek ze zmiennej. Sytuacja wygląda tak że mam 6 przedrostków...
Efekt 888 pojawia się dlatego, że używasz operatora OR w funkcji setNum() oraz dlatego, że źle korzystasz z operatorów logicznych (AND i OR). Zamiast wpisać nową wartość do rejestru PORTD, sumujesz ją z poprzednią wartością. Sama funkcja jeszcze mogłaby wyglądać inaczej, ponieważ nadal niepotrzebnie w procedurze obsługi przerwania jest ona wywoływana...
Kod w C, ale powinieneś łatwo dojść co i jak: [syntax=c] for(uint8_t count=0;count<8;count++) { if(zezwolNaOdliczanie&&(1<<... { if(!OdliczanieMinuty[count]&&!Od... { if(OdliczanieGodziny[count]) { OdliczanieMinuty[count]=60; OdliczanieGodziny[count]--; } } if(!OdliczanieSekundy[count]) { if(OdliczanieMinuty[count])...
Witam Mimo, że większość proponowanych tutaj rozwiązań podłączenia RFM12 do Atmegi wykorzystuje SPI programowe, ja podłączyłem tradycyjnie, przez SPI sprzętowe - mimo, że nie miałem problemów z wgrywaniem kodu do Atmegi spiętej z RFM12, to uruchomienie ich razem jest problematyczne ( każde osobno działa bez problemu ) [syntax=basic4gl] $include "Config_AVR-DOS.BAS"...
Witam. Co mi przyszło do głowy: Dim N As Single , Temp As Single , Temp2 As Byte Temp2 = Tcnt0 Temp = Temp2 N = Temp / 36 N = N * 60 Cls Lcd "V=" ; Fusing(N , "#.##") Nie można przepisać bezpośrednio wartości rejestru Tcnt0 do zmiennej typu Single , ale można do Byte , a tą do Single i wtedy podzielić. Chyba o to Ci chodziło?...
Dobrze, że podzieliłeś na odrębne funkcje wyświetlające poszczególne "menu". Lecz algorytm sterowania musisz inaczej obmyślić, poprzednio miałeś lepiej zrobione. Mianowicie, potrzebujesz automatu stanów skończonych. Coś na ten temat: https://ep.com.pl/files/1436.pdf Pokrótce: zapamiętujesz stan aktualny i wg tego wiesz, jak masz postąpić w przypadku...
Problemem jest to, że tekst deklarowany jest jako tablica znaków, a inicjowany c-stringiem... const char PWRON[18] = "System URUCHOMIONY"; Definiujesz tablicę o długości 18 znaków i wpisujesz do niej ciąg 19 znaków (to jest c-string, więc jest tam już \0 na końcu ale wypada poza rozmiarem tablicy, stąd powinno być ostrzeżenie kompilatora). Gdybyś zadeklarował...
Krótka podpowiedź: ustaw sobie któryś timer żeby się przepełniał co 1 sekundę albo jakąś WYMIERNĄ część sekundy (należy ustawić odpowiedni podzielnik zegara CKSL i wartość w OCRx) i następnie albo uruchom przerwanie od zegara i w programie przerwania będzie ci się odejmować od zmiennej (powiedzmy sekundy--; ) albo testuj programowo flagę timera i jak...
<ciach> Konkrety podane wyżej Też dałem konkrety. Trzeba zacząć od zrozumienia programu aby go modyfikować a widzę brak podstaw,bo można przeoczyć wyświetlanie jednej zmiennej jak jest ich 10 ale nie gdy są 3. Albo to: sprintf(temperatura,"T=%1.3",temp); prawdopodobnie miało być wyświetlenie float czyli "T=%1.3f" ale, czy dołączone...
Witam, skoro masz podpiętego LM-a pod wejście ADC na PF0 i napięcie z AVCC to pozostaje wywołać pojedyńczy pomiar: [syntax=basic4gl]Adcsra = &B11000111 [/syntax] poczekać aż się wykona: [syntax=basic4gl]Powrot: If Adcsr.6 = 1 Then 'czekanie na dokonanie pomiaru Goto Powrot[/syntax] i odczytanie wartości z rejestru: [syntax=basic4gl] Wynik = Adcl 'przepisz...
1. a czy sprawdziłeś to co podałem Ci jako możliwe przyczyny? Bo moim skromnym zdaniem to jest powód problemów, i jestem skłonny dziwić się, czemu to zadziałało na mega32... 2. sprawdź sam timer, daj w nim np. za każdym razem zwiększanie zmiennej o 1 (np. utwórz dim zmienna as integer) i wyświetlanie jej na lcd - jeśli będzie się zmieniać to znaczy,...
Problem polega na tym, że odczytujesz wartość ADC z uC zamiast z DS18xxx. Brakuje ci obsługi DS18B20. Poniżej fragment kodu działającego u mnie. [syntax=vbnet] Config 1wire = Portb.0 '0,1,2 NOP 3,4,5,6,7 works good ON MY Equipment Do 1wreset 'reset 1wwrite &HCC 'jedna kostka, więc wykorzystujemy rozkaz SKIP ROM 1wwrite &H44 'dokonaj konwersji Waitms...
Witam, przesyłam wartość zmiennej z jednego uc do drugiego po rs232. Wykorzystuje printf("%u", zmienna); jeśli do "zmiennej" wpisze wartość np. 7 do drugi uc wyświetla mi nie 7 a 55 co odpowiada cyfrze siedem w kodzie ASCII. Mo je pytanie, jak wysłać wartość "zmiennej" jako liczba a nie kod ASCII. Dodam , że wysyłając z terminala 7 jako kod ASCII na...
Witam. Postanowiłem wreszcie zrobić sobie zegarek do pokoju. Wybór pał na PCF8583 bo już kiedyś z niego korzystałem i wspominam bardzo pozytywnie - nie było żadnych problemów z odpaleniem i komunikacją tylko że to były czasy AT89C2051 i bascoma 8051. Teraz mam w układzie atmege8515 i są spore "jaja" co jakiś czas (godzina czasem pół czasem dwie) dostaje...
Próbowałeś zrobić algorytm, który zamiast odczytywać tablice z pamięci będzie je generował? Nie do końca wiem jak to zrobić, choć mam pewien pomysł. Nie mogę realokować raz już zdeklarowanej zmiennej tablicowej i np przydzielić jej więcej lub mniej pamięci albo zmienić liczbę komórek. Gdybym natomiast wykorzystał bascomowe polecenia PUT i INP w celu...
Dzięki :) Teraz mam kolejny problem char* pch; pch = strtok(data,"!(at)#$%")... while (pch != NULL) { myGLCD.print(pch, LEFT, 130); pch = strtok(NULL, "!(at)#$%"); } W przykładzie tej funkcji jest deklaracja char* pch Ogólnie program się kompiluje, niestety używanie w arduino deklaracji z znakiem...
Nie wiem czy dobrze rozumiem ale konstrukcja sprintf(I,II,III) mówi że zapisz do zmiennej na I pozycji w postaci takiej jak w II pozycji to co podaje w III, stąd nie dokońca wiem jak można to inaczej zapisać, masz na myśli żebym kowersje przypisał jakiejś innej zmiennej char i wtedy tą zmienną wyświatlał w LCD_WriteText("nowa_zmienna_char"), bo do tej...
No po części też i do ASCII najpierw z zmiennej bajtowej wydzielane są poszczególne bajty z zmienną jednostkową a póżniej zamiana na kod ASCII i wpisanie do tablicy z tym że ta funkcja ma jeden feler nie wyświetla liczby 0 ponieważ w pierwszej pętli for już następuje wyjście nie wiem do dzisiaj jak zbudować poprawnie tą funkcje.
ATMEGA128 będzie odczytywać DS-y i sterować pompami od CO, CWU, cyrkulacji CWU i podłogówki a ESP obsługiwać TFT LCD do wyświetlania na panelu oraz wysyłać w sieć dane do cayenne. Nie chcę uzależniać działania systemu od procesora podpiętego do sieci. Nie znam poziomu zabezpieczeń protokołu cayenne oraz samego ESP a gdy będzie on tylko odbierał dane...
Atmega to raczej nie możliwe , pewnie nadpisujesz sobie któryś z rejestrów z jednej pętli druga odpal program w symulacji i zerknij kiedy i gdzie zmieniają się wartości . Możesz zobaczyć czy odłożenie rejestrów na stos przed wejściem w pętle i pobraniem po niej usunie błędu jak tak się stanie nadpisujesz w procedurze rejestry
a tak poza tym jak chcesz inkrementować zmienną utworzoną wewnątrz timera która nie ma operatora volatile :?: O której zmiennej piszesz? O zmiennych: Tczas ? - nie ma takiej potrzeby, bo jest to zmienna używana tylko w przerwaniu dlatego deklaracja Static jest prawidłowa? i ? - w pierwszym kodzie wklejonym w tym temacie jest deklaracja volatile. Ale...
wyświetlenie temperatury w *F ( czyli *C + 273 ) To raczej temperatura w Kelvinach :) Dalej biblioteka jakaś dziwna... Skorzystaj z biblioteki http://radzio.dxp.pl/hd44780/hd44780_avr... Twój kod powinien w teorii działać, za to przedmówcy zdecydowanie nie... Problemem może być stosowanie zmiennych float i dtostrf. Zamiast tego pomyśl...
Nie o to mi chodziło ale mniejsza z tym :) Poprawka oprogramowania z 14 kwietnia. Dziś sobie przypomniałem, że jak zaczynałem robić oscyloskop (jeszcze na wyświetlaczu L2F50) miałem go w drugą stronę (Jakby do góry nogami) i dlatego zapisywanie do bufora próbek musiało być wykonywane od tyłu żeby potem dobrze było to wyświetlać. I zapomniałem potem...
Można też tak: '''''''''''''''''''''''''''''''''''''men... glowne'''''''''''''''''''''' Sub Menu Cls Menu_number = 1 Do Keyscan Waitms 300 Select Case Key Case 0: Incr Menu_number If Menu_number = 11 Then Menu_number = 1 Case 2: Decr Menu_number If Menu_number = 0 Then Menu_number = 10 End Select Lcd " MENU " Lowerline Lcd Menu_number...
Korzystając z Waszych wskazówek przerobiłem program Niby teraz wszystko działa, jednak czy aby na pewno to jest poprawnie. Mam wątpliwości,. trochę błądzę jak dziecko we mgle.. Nie jest poprawnie. Zabierz ten "Waitms" z petli 'Do...Loop' (zupelnie tam nie jest poptrzebny), a w to miejsce wstaw poprawne obliczenia czestotliwosci. Frq. jest obliczana...
Witam, jestem w trakcie pisania biblioteki do LCD (HD44780), już prawie wszystko mam, pozostało natomiast napisać najbardziej kompleksową funkcję i... zbytnio nie mam pomysłu ;] Mam funkcję do wyświetlania pojedynczych znaków, stringów oraz liczb w różnych miejscach wyświetlacza chcę natomiast stworzyć coś przypominającego funkcję printf z C abym np....
Próbuję wykorzystać EEPROM w moim programie, w tym celu napisałem sobie próbny kod, który powinien wyświetlić mi na wyświetlaczu dwie jedynki. [syntax=c]#include <avr/io.h> #include <avr/interrupt.h> #include <avr/pgmspace.h> #include <avr/eeprom.h> // bibliotek do obsługi EEPROM #include <util/delay.h> #include "LCD/lcd44780.h";...
Sporo tego ( obsługa SD, PCF8563 + menu do ustawiania daty, obsługa PCF8574 w przerwaniu INT1 )- ale nie ma problemu - zmieniła się tylko zawartość podprogramu Pomiar była taka, jak w pierwszym poście oraz wyłączyłem w wyświetlanie na LCD tych wartości wskazań z DS18B20, oczywiście dostosowałem pozycje wyświetlania do LCD 4*20 - załączniku spakowany...
Powołana jest zmienna a i na początku ma wartość 0. Następnie w pętli for zmienna ta jest inkrementowana przy każdym obiegu pętli o 1, jeśli jest mniejsza od zmiennej kolumna. Zmienna kolumna przybiera wartości 0-20 w zależności, jaki jest wynik dzielenia wartosc_adc / 51 Program wyświetlający pasek działa i wszystko jest ok, poza tym, że nie do końca...
Wrzuć wszystko do programu głównego tzn. przyciski ( ustawianie czasu załączania/wyłączania pompy), sprawdzanie Adc (poziom wody) przeliczanie wartości dla wyświetlacza , a samo wyświetlanie w podprogramie odświezanym co jedną sekundę za pomocą Timer0 . Timer0 dalej dla wyznaczania 1 sekundy. Buzer zrealizuj za pomocą zwykłej zmiennej licznikowej zwiększanej...
Wciśnięcie powoduje zwarcie do masy. Kolejne pytanie: Utworzyłem sobie 12 zmiennych typu volatile uint8_t Chce teraz stworzyć tablice 12 elementową, do której przypisze te zmienne i będę je sobie wybierał pętlą w programie. Niestety przy takiej inicjalizacji; volatile uint8_t tablica[11]={pwm1,pwm2,pwm3,pwm4,pwm5,pw...
Liczyłem impulsy z Timera0. Częstotliwośc kwarcu dzielę przez 1024 co daje mi 18kHz taktujących Timer0. Przed wejściem w petlę odczytującą 7 czujników ustawiam w timerze wartość zero i zeruję zmienną odpowiedzialną za liczenie przepełnień Timera0 w przerwaniu. Zmienna licząca ilość przepełnień wyświetla się jako 1 a liczba impulsów w Timerze0 jako 226.
Odświeżę temat, postanowiłem w święta pobawić się tymi RFM12B, dwa odrębne układy, połączone w/g schematu z pierwszej strony tego tematu, probram w Bascomie, modyfikacja polegająca na : Spi_cs Alias Portb.2 ' SS-Pin Config Spi_cs = Output Spi_sdo Alias Pinb.4 ' MISO-PIN Set Spi_cs Spiinit no i d... nadajnik ma zaprogramowane wysyłać liczby od 1 do 200...
Powiem tak, może nie przez USART ale inaczej robiłem testy a mianowicie do programu w różnych miejscach wklejałem komendę zapisu z powrotem do kart SD i bezpośrednio po odczycie było ok, po przejściu na string*3 było ok, po przejściu ze string*3 na byte tez było ok. Mam wrażenie ze sie ram nadpisuje i mi niszczy zmienne, ale dla czego tylko wtedy gdy...
Witam. Mam zapisaną stronę www w module tibbo i chcę wysłać z niej dane do atmego (po uarcie). Z atmegi do tibbo dane wysyłam i je wyświetlam. Problem mój jest następujący: na stronie mam kilka radio (do zaznaczania opcji ON i OFF) i nie wiem w jaki sposób przesłać informacje o tym, który został kliknięty do portu szeregowego. Chodzi mi dokładniej o...
Witam, posiadam dwie atmegi8 sprzęgnięte ze sobą komunikacja za pomocą UART. Jedna atmega będzie zbierać informację z czujników i poprzez UART przesyłać bajty danych do drugiej atmegi której zadaniem jest wyświetlanie tych wartości na wyświetlaczu graficznym. Moja ramka danych składa się z dwóch bajtów, pierwszy z nich jest to bajt "adresowy" który...
tak to mniej więcej robię. tyle tylko, ze przerwanie przerywa komunikację I2C i zjada sekundy , albo powstają jakieś błędy. jak dam odczyt I2C w obsłudze przerwania - to sam wiesz wszystko zaczyna migotać. nie zacząłem jeszcze wkładać do programu procedur do 1wire, ale tam też szykuje się problem z czasem konwersji - nie można dać waitms bo wyświetlacze...
0 znaków :) czytam z karty grafiki realizowane są programowo np wyświetlanie paska postępu Oczywiście zdefiniowana jest tablica znaków która zajmuje ok 5% tej wartości. A nazwy zmiennych funkcji... nie są jednoliterowe więc stąd ta liczba - program zajmuje ok 5kB FLASH Krzysiek16 - mam ponad 100 prostowników więc nie będę 'rozbierał go' by diodę wyciągnąć...
no właśnie ja chcę żeby wyświetlał na LCD... Nie wiem czy dobrze opisałem w pierwszym poście Na początku wszystkie wejścia są ustawione na 0, wiec LCD wygląda tak: _ _ _ _ _ Wciskam przycisk2, po czym go zwalniam i LCD się zmienia na: _ * _ _ _ Wciskam przycisk3, po czym go zwalniam i LCD się zmienia na: _ * * _ _ Wciskam przycisk2, po czym go zwalniam...
Witam Możliwe że nie piszę w dziale w którym powinienem ale nie znalazłem lepszego miejsca. Otóż męczę się z modułami ESP8266. Wcześniej miałem połączone ten moduł poprzez Uart do Atmega. I komunikowałem się bez problemu. Ale że ESP posiada własny szybki kontroler i sporo pamięci to postanowiłem pozbyć się atmegi i program napisać bezpośrednio na ESP....
Hey czyli problem jest w instrukcji Ss = Format(ss , " 0.0") wrzuć ten program i powiedz czy wszystko gra jeżeli tak będę pisał co zrobiłem. [syntax=basic4gl]$regfile = "m8def.DAT" 'deklaracja procesora, w tym wypadku Atmega8 $crystal = 1000000 'deklaracja cześtotlwiości pracy (wew oscylator 1MHz w zupełności wystarcza) 'Deklaracja portów od wyświetlacza...
Nie podoba mi sie ta biblioteka, stan wszystkich pinow siedzi w jednej zmiennej, nie jest obliczana tylko modyfikowana bit po bicie. char napis[20] = "asdasd"; zmniejsz rozmiar tablicy do 8 np, chociaż to nie powinno miec znaczenia... kondensatory przy 74 i LCD 100nF masz? W czym kompilujesz? Może w kompilatorze masz FCPU inne ustawione, sprawdź. Krzaki...
Wiec trochę to trwało by cokolwiek napisać ( brak programatora działającego z bascom trochę mnie stopował) Zrobiłem juz prosty algorytm tego co potrzeba zrobić i podzieliłem prace na 4 etapy: 1) wejścia adc dla map sensora ( zrobione ;) 2 wejście dla enkodera ( muszę zakupić jakiś impulsator i napisać parę linijek) 3 pomiar czasu pracy każdego z wtryskiwaczy....
Witam i od razu pytam. Jako że nigdy nie uruchamiałem wyświetlacza graficznego 240x128 z kontrolerem T6963C w środowisku bascom avr atmega 128 to mam w związku z tym pytanie: o ile na wyświetlaczu tekstowym nie mamy żadnego wyboru wielkości czcionek o tyle na LCD graficznym zastanawiam się czy mogę zmienną np A wyświetlać na połowie ekranu. Zmienna...
Nie ma co już się tak roztrząsać nad tymi opóźnieniami... Sprawa już rozwiązana. Wyświetlanie zmiennych na wyświetlaczu również. Tylko kompiluje mi się z dwoma warningami: ../serwo.c: In function 'main': ../serwo.c:81: warning: implicit declaration of function 'itoa' ../serwo.c:82: warning: pointer targets in passing argument 1 of 'LCD_WriteText' Ale...
Witam Chciałm zrobić automatyczną regulację obrotów silnika. Pierwszy silnik napędza drugi silnik który pracuje jako prądnica i muszę wraz ze zmianą obciążenia prądnicy regulować obroty silnika tak aby uzyskać stałe napięcie na wyjściu prądnicy. Do sterowania zastosowałem Atmegę 8. Napisałem taki programik i niby działa, ale ... regulacja jest zbyt...
Co do eepromu to pod adresem 01 przechowuje 2 bity i one też się wysypały. o adresie 00 wiem ale jakoś to pominołem deklarując zmienne. W programie (nie wklejałem tego fragmentu) wyświetlam tekst "test" i następnie jest wait 10. ten czas jest już dłuższy ok 4 razy. Pętla programu też wykonuje się dużo dłużej, co widać po reakcji na przyciski. próbowałem...
Więt tak: deklaracja zmiennej : [syntax=c] volatile uint16_t zmienna = 0; // - zmieniam tą wartość później na 300 [/syntax] włączam przerwania według konfiguracji zegara (8MHz - wewnętrzny) [syntax=c] //- uruchomienie eepromu extern EEMEM uint16_t eeprom_values[200]; EEMEM uint16_t eeprom_values[200] = {0,0}; //- konfiguracja zegara void Init_Timer0_OVF(){...
Dyskusja schodzi z tematu więc założyłem nowy temat do wygadania się: http://www.elektroda.pl/rtvforum/topic32... A teraz jeszcze na temat. Zegar wskazuje czas prawidłowo ale nie przerzuca daty przy zmianie doby czyli po minięciu godz. 23:59:59 Funkcja Secofday() przybiera o godz. 00:00:00 wartość 0. Chciałem więc to wykorzystać do zwiększenia...
Witam, Mam taki problem - napisałem sobie procedury do obsługi wyświetlacza LCD, nie mogę tylko poradzić sobie z wyświetleniem na LCD zawartości rejestru (16 bitowy). Procesor ATmega 8. Próbowałem takie coś: void pisz_int(unsigned int t) { unsigned char bufor[20]; itoa(t,bufor,10); pisz_text(bufor); } ale nie...
Witam ponownie i dziękuję za zainteresowanie tematem. Dziękuję za rady ale niestety albo coś źle robię albo wyłączenie przerwań na czas wyliczenia zmiennej nie działa. Próbowałem na różne sposoby: - wyłączać zaraz po wejściu w tą funkcję, - wyłączać po wejściu w pętlę while(y), - włączać w różnych miejscach Niestety efekt jest zawsze taki sam. Poniżej...
Kod: linijka 9: built-in function 'index' declared as non-function linijka 14: function declaration isn't a prototype linijka 49 i 53: array subscript is above array bounds
Ustawienie zmiennej jako uint16_t i odczytanie ADC pomogło . Dzięki za pomoc!!! Proszę zakładać tematy, we właściwych subforach - w przeciwnym wypadku, będą przenoszone do kosza. Tym razem, przeniosłem.
Tak, są podciągnięte. Problem się robi po dodaniu tej jednej linijki. Wydaje mi się że to będzie problem ze zmiennymi. Dodano po 10 Wystarczy że np. usunę całe menu ustawiania zegara i wtedy adc wyświetla - ale przecież jakoś ten zegar muszę ustawiać. Podobnie ma się sytuacja jak zostawię ustawianie zegara a usunę linijki odpowiadające za wpis do pamięci...
Witam, mam mały problem z uruchomieniem menu wyboru. Chciałbym podpiąć do ATmega8A wyświetlacz LCD a następnie dwa przyciski i 5 diod. Przyciski były by do przewijania w górę lub w dół menu a którym znajduje się odpowiednia lista. W zależności co pokazuje wyświetlacz (ma ustawione, w zależności od wartości zmiennej którą inkrementuje/dekrementuje przyciskami)...
Po wielu bitwach stoczonych nad "projektem" zjedzonych nerwach i spalonym jednym czujniku, układ działa... pomijam fakt błędnego podłączenia wyświetlaczy, jednak główną przyczyną było zupełnie co innego - błędne odczytanie wartości temp z scratchpad'a oraz brak definicji F_CPU w pliku ds18b20.c Podczas walki z programem, po prawidłowym zapisaniu formuły...
Ok jest wszystko pięknie chodzi. Ale zdążyłem to zrobić innym sposobem, rozdzielałem liczbę na wiele sposobów, najpierw z pierwotnej uzyskiwałem całkowitą potem pierwotną razy 10 - odejmowałem całkowitą poprzednią i miałem wartość dziesiętną potem wyświetlałem to jako dwie liczby w środek dając przecinek. A tu jeszcze przetłumaczona instrukcja używania...
Jeśli tak, to rewelacja! Czy z kodem po polsku też to AI sobie radzi? Polskie nazwy zmiennych, funkcji, itd. Tworzy angielskie nazwy zmiennych, w sumie to zawsze się powinno dać angielskie nazwy, żeby kod był dostępny dla każdego i wynika to z dobrych praktyk programowania, ale jak go poprosisz o polskie zmienne to wypluje kod odpowiednio :). Tak z...
Jak nie działało tak nie działa ;( Dzisiaj byłem u mojego opiekuna projektu, dał mi parę wskazówek co można poprawić i czego spróbować, ale nie znalazłem jednoznacznego błędu w moim algorytmie. Dodałem obsługę i wyświetlanie wyników na LCD i podpinałem się dla pewności pod oscyloskop. Używając jednego kanału, obojętnie którego wszystko jest ok, idealnie...
Zgaduję, że błąd jest w BCD2Dec. Sama nazwa tej procedury już sugeruje błąd, ale może się mylę - w końcu jej nie pokazałeś. Ni epokazałeś też LCD_Send,a podobno błąd jest w wyświetlaniu. Bez deklaracji tych procedur trudno coś stwierdzić. Wątpię też, czy istnieje potrzeba deklarowania zmiennych time_xxx jako volatile. Co to jest ten "zegar słowowy"?
Zacznij od "higieny": 1. Zamiast zmiennej Integer do ciśnienia użyj zmiennej Word. 2. Przy dzieleniu i mnożeniu przez takie wartości jak w Twoim przykładzie użyj Shift (szybciej się wykona) Chyba nie musisz używać Fusing jeżeli nie masz wartości dziesiętnych tylko zmienną typu Word wyświetlasz tak jak jest. Wartość ciśnienia mniejszą od 1000 przesuwasz...
Witajcie fachowcy. mój problem polega na obsłudze wyświetlacza tzw 16*1a. korzystam z procedury opublikowanej w "mikrokontrolery avr atmega w praktyce" niestety, nie wiem jak za jej pomocą obsłużyć ten wyświetlacz. czy zna ktoś sposób konfiguracji w.w wyświetlacza aby pracował jako jedna szesnastka, czy nadal musze sie z nim męczyć jakbym używał wyświetlacza...
Poczytalem sobie troche noty aplikacyjnej oraz wiadomosci na elektrodzie i jednak nie znalazlem tego, co potrzebowalem badz nie potrafilem doczytac :) Procesor ma za zadanie zliczac impulsy z przetwornika U/f w okresie jedno-sekundowym i wyswietlac na LCD. jesli dobrze zrozumialem to: - TC0 ma byc ustawiony jako wyjscie - TCCR0 = 0b00000110 - zewnetrzny...
[To dopiero byłby bajzel :D Może nowy kolega najpierw pomyśli lub poczyta dokumentację , a potem "doradza" :?: ;) A dlaczego bajzel? Co się stanie w podanym programie gdy w czasie obsługi przerwania wystąpi następne przerwanie ? Nie wiem ile RAM-u w AVR można przeznaczyć na stos, ale w 8051 (bo tego znam) to szybko go zabraknie. Zgodzę się natomiast,...
Witam Chciałbym się dowiedzieć w jaki sposób mogę wyświetlić zmienną i na wyświetlaczu. Chodzi o to, że jak napiszę np coś takiego for (i=0, i>100, i++) { WriteText(i); } To żeby wyświetlały mi się po kolei cyfry od 1 do 100 a nie znaki ASCII Lub żebym mógł pisać podobnie jak w BASCOMie MSC-51 tzn. LCD "Zmienna i wynosi" ; i Dodam, że do obsługi LCD...
Witam Wzorując się na jednym z przykładów chciałem wyświetlać dane z GPS. GPS działa poprawnie, wyświetla dane w oknie terminala. Podłączenie TX GPS z Rx AtMega nie powoduje żadnej reakcji $regfile = "m32def.dat" $crystal = 8000000 $baud = 9600 ' predkość transmisji $hwstack = 64 ' rozmiar stosu sprzętowego $swstack = 64 ' rozmiar stosu programowego...
www.elektroda.pl/rtvforum/topic1179898.h... w 1 poscie jest schemat podłączenia , czy tak może być ?? mam naprawdę gorąco prośbę czy może ktoś napisać kawałek kodu odpowiadający za wysłanie i odbieranie 2 zmiennych typu integer np dom = 67 strych =76 między dwoma atmega dalej już sobie poradzę . nie prosił bym o pomoc ale Internet mam tylko w telefonie...
można działać i z Inkey'em - ale kompletnie nie tak... ja polecam ci zapoznać się z poleceniem Ischarwaiting oraz zaprzyjaźnić się wtedy z poleceniem Input. Tylko trzeba ten komplet odpowiednio zastosować - jak? 1. w swojej pętli głównej jak najczęściej sprawdzasz poleceniem Ischarwaiting czy coś już znalazło się w buforze wejściowym - sprzętowym UART'a...
Witam drogich forumowiczów. Mam takie pytanie: napisałem program do obsługi wyświetlacza dwucyfrowego w trybie multipleksowania. Chciałem teraz za pomocą dwóch switchów zwiększać (zmniejszać) wyświetlaną wartość. No i to mi właśnie nie działa (samo wyświetlanie działa). Oto kod: #define F_CPU 16000000L #include <avr/io.h> #include <util/delay.h>...
W takim razie mam rezystor policzyć dla prądu 2,5mA ale np. dla 170v ? R=\frac{U_{zasilania}-U_{pracy}}{I_{kato... Poprawiony schemat - przyciski. Tak jest dobrze, a na pewno nie jest źle :) Pytanie nadal jest: Czy lepiej użyc Atmega 32 i podłączyć przyciski pod INT'ty czy w pętli while(1) skanować klawiaturę oraz pobierać czas z DS1307 i wyświetlać...
Witam, czy moglibyście wytłumaczyc jak prawidłowo zapisać w kodzie wyświetlanie temperatury na lcd 2x16...Cały czas mam problem z dobraniem offsetu.... w chwili obecnej pokazuje mi zakres tem od -25C do 25 C . Stan początkowy 262mV ---> 21.68C..Lm35Dz mam w konfiguracji z pomiarem ujemnych temp poprzez dołaczenie R18k i 2diód.(podniesieie nap masy)......
Mam jeszcze jeden problem, mianowicie: Mam zmienną typu single U i przypisuje jej liczbę 2.56 chcąc ją zwiększać o 0.01 robię coś takiego U = U + 0.01 a potem wyświetlam to na LCD. Lecz pojawia mi się http://obrazki.elektroda.net/98_12637529... Wiem, że resztę cyfr mógł bym zamaskować na przykład poprzez instrukcje fusing. Lecz jeżeli dalej chcę...
Niestety tu sie mylisz. nie bedzie 1, a bedzie nie zero - czesto jeden ale niekoniecznie. [syntax=c] void main(void) { printf("%d\n", !!24); printf("%d\n", !!-100); printf("%d\n", !!666); printf("%d\n", !!0xFFFFFFFF); printf("%d\n", 0); } [/syntax] Zgadnij jakie sa wyniki. Podpowiem, bardzo często 1. W Twoim programie linker pozbył się zmiennej której...
Tydzień już siedzę nad tym temate i zamiast wiedzieć coś więcej wiem coraz mniej przez miliony sprzecznych informacji. Może już ktoś przeszedł przez to piekło i podzieli się poradami jak to zrobić. Problem wygląda następująco, mam program na atmega32 podaje w nim 4 zmienne on je wyświetla i działa z nimi. Teraz chce te dane zmienić wiec musze zaprogramować...
Witam. Posiadam kilka kompletów tego nadajnika i odbiornika (433MHz) i tak jak kolega wspominał w eterze mega dużo śmieci. Ale... znalazłem rozwiązanie tego problemu śmieci! Zmierzyłem miernikiem częstotliwości wyjście odbiornika podłączonego tylko do zasilania i u mnie były takie wyniki: od około 600Hz nawet do 3kHz sygnały śmieci które zmieniały się...
Zamieszczam program w bascomie, który jest dosyć niezoptymalizowany więc proszę się nie czepiać tylko ewentualnie udzielać wskazówek... Proszę bardzo :D Staraj się jak najmniej korzystać z funkcji cls, która jest nie przyjemna dla oka. Tekst statyczny umieszczaj przed pętlą, natomiast zmienne wartości przez nadpisywanie wspierając się spacjami, gdy...
Oto mój kod do wysyłania znaków: [[syntax=c] void nadajznak(char dana1) { while(!(UCSRA&(1<<UDRE))); //czekaj na wysłanie poprzedniej danej UDR=dana1; } [/syntax] [syntax=c] void nadajstring(char *dana) //wysyłanie całego napisu { int dlugosc; //zmienna określająca długość napisu int k=0; //zmienna licznikowa dlugosc=strlen(dana); //pobieranie...
Dziękuje za szybką odpowiedź, czyli problem w typie zmiennej. Zamierzony efekt da się osiągnąć innymi sposobami, które zajmą może 10% objętości metody z floatami. 4\/3!! Nie liczę na gotowca, ale chociaż jakąś wskazówkę jak inaczej się z tym rozprawić. Jest to po prostu miernik napięcia baterii, wiem jak wyświetlić to napięcie w zakresie 0-255, wartość...
wyświetlanie zmiennej napięcia bascom wyświetlanie zmiennej wyświetlanie zmiennej bascom
rozlać bateria telefon wyciek amica iveco daily problemy klimatyzacja
Roland EXR-3 nie nagrywa – serwis, naprawa, typowe usterki, Warszawa, Audiostacja Audi A1 S-Line 2014 – stalowa czy aluminiowa karoseria?