Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 29 mar 2026, o 10:21


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 38 ]  Przejdź na stronę 1, 2  Następna strona
Autor Wiadomość
PostNapisane: 22 paź 2014, o 18:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 sty 2014
Posty: 336
Lokalizacja: Grodzisk Mazowiecki
Pomógł: 13

Dłubię kolejny dzień w obsłudze tego wyświetlacza. Miałem z nim problemy z uruchomieniem ale dzięki koledze z forum udało się go ożywić. Mam nadzieję że teraz też się uda popchnąć dalej.
Problem jest taki że nie mam funkcji wyświetlania zawartości jakieś tam zmiennej. Czy ktoś mógłby zerknąć i podpowiedzieć jak ją utworzyć na przykładzie np: funkcji wyświetlającej tekst lub funkcji wyświetlającej znak ASCII

Funkcja wyświetlająca tekst na wskazanej pozycji x,y wygląda jak poniżej.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Wywołanie powyższej funkcji w pliku main.c
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Nie bardzo wiem jak powyższa funkcja miałaby wyświetlić mi zawartość zmiennej.

Jest jeszcze funkcja gdzie podając liczbę zwraca nam na wyświetlaczu znak z tablicy ASCII np: wpisując 65 wyświetla nam literę A
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


wywołanie funkcji w pliku main.c
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.




Zamieszczam również kod całego pliku lcd.c gdzie znajdują się pozostałe funkcje odpowiedzialne za inicjalizację i do rysowania linii i ramek
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Proszę o pomoc. Bez tego ani rusz z wyświetlaniem temperatury, pomiarów ADC itp... Jednym słowem lipa panie Bronku ;)

_________________
"Nie programuj w święta - bug się rodzi"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 paź 2014, o 18:38 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

Witam,

Kolega napisz sobie na podstawie poniższego :)

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



z Niebieskim pozdRowieniem,
Doman89


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 paź 2014, o 19:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 sty 2014
Posty: 336
Lokalizacja: Grodzisk Mazowiecki
Pomógł: 13

Tylko się nie śmiać ze mnie :)
Spróbowałem stworzyć funkcję lcd_index na podstawie w/w przykładu


Dodałem funkcję w pliku lcd.c
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


W pliku lcd.h dodałem
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Wyskoczyły mi warningi w pliku lcd.c
Kod:
../lcd.c: In function 'lcd_index':
../lcd.c:504:9: warning: implicit declaration of function 'itoa' [-Wimplicit-function-declaration]
../lcd.c:504:9: warning: passing argument 3 of 'lcd_string' makes pointer from integer without a cast [enabled by default]
../lcd.c:453:6: note: expected 'char *' but argument is of type 'int'


Czegoś pewnie nie zrozumiałem


EDIT: Chwila. Chyba łapie :)

_________________
"Nie programuj w święta - bug się rodzi"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 paź 2014, o 19:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

Żeby korzystać z funkcji typu itoa, atol itp. musisz jeszcze dać:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


z Niebieskim pozdRowieniem,
Doman89


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 paź 2014, o 19:49 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 sty 2014
Posty: 336
Lokalizacja: Grodzisk Mazowiecki
Pomógł: 13

To miałem dodane w pliku main.h

Coś się udało :D

w pliku lcd.c funkcja wygląda tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Wywołanie w pliku main.c wyglada tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Cieszę się bardzo że coś ruszyło WIELKIE podziękowania za pomoc :)

Zostały dwa problemy.
Pierwszy to brak wyboru fontu 6x8 lub 8x16 ale to mały pikuś wiem jak to ominąć.
Natomiast drugi jest poważniejszy.
Gdy zmienna=12.5 wyświetla mi tylko 12
Co tu można usprawnić ??

_________________
"Nie programuj w święta - bug się rodzi"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 paź 2014, o 19:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

Kolega wygrzebane z czeluści internetu:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Więc nie testowane, ale zawsze jest na czym się oprzeć ;)

z Niebieskim pozdRowieniem,
Doman89


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 paź 2014, o 20:30 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 sty 2014
Posty: 336
Lokalizacja: Grodzisk Mazowiecki
Pomógł: 13

Wow niezła porcja danych do przetworzenia.
Pozwolę sobie wstrzymać się do jutra z tym. Dzisiaj już mi czacha dymi :)
Nie bardzo wiem co z tym fantem zrobić

_________________
"Nie programuj w święta - bug się rodzi"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 paź 2014, o 20:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

Hahaha kolega ale wrzuciłem Ci fajny kod... nie ten co trzeba :lol:

Chodziło o ten:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Najprościej to chyba cały kod przekopiować :D i spróbuj użyć w ten sposób:

lcd_string( x, y, fascii( 12.5 ), ptr_font_6x8, linkmode);

Jak pójdzie to sobie znów ułożysz nową funkcję ;)

z Niebieskim pozdRowieniem,
Doman89


------------------------ [ Dodano po: 1 minucie ]

Tylko jak przestanie Ci czacha dymić to wywal tego printf'a :)


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 paź 2014, o 18:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 sty 2014
Posty: 336
Lokalizacja: Grodzisk Mazowiecki
Pomógł: 13

Czekałem cały dzień z nadzieją na sprawdzenie. Niestety nie zadziałało.

Zbudowałem to w ten sposób
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
"Nie programuj w święta - bug się rodzi"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 paź 2014, o 18:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

Witam,

Kolega spróbuj coś takiego - nie testowałem pisałem na sucho, ale chociaż może Cię naprowadzę :P

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Nie wiem czy nie będzie potrzebne jeszcze:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


z Niebieskim pozdRowieniem,
Doman89


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 paź 2014, o 19:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 sty 2014
Posty: 336
Lokalizacja: Grodzisk Mazowiecki
Pomógł: 13

Chyba poległem. Za cienki jestem dłubie po omacku a nie wiem co tam się w ogóle dzieje

W tej chwili mam w pliku main.c zdefiniowaną zmienną "i" którą chcę wyświetlić
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

W pliku lcd.c mam funkcję
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Wyskakuje kilka ostrzeżeń mimo to wyświetla zawartość zmiennej "i" ale bez ułamka. zmienna i=9.5 ale wyświetla 9
Dziękuje że poświęciłeś swój czas.

P.S. dodałe #include <string.h> do pliku main.h

_________________
"Nie programuj w święta - bug się rodzi"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 paź 2014, o 19:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

Kolega ja też jestem cienki i jadę po omacku zawszę ;)

1. Ja Ci podałem 2 funkcję fascii i lcd_float. One są osobne, a Ty je łączysz w jedno - nie tędy droga. fascii traktuj jak itoa - osobna funkcją z której wyniku ma skorzystać lcd_float. Rozumiesz?

2. Drugi błąd to, to że wpisujesz do zmiennej całkowitej - integer, zmienną zmiennoprzecinkową - float. Na starcie jak wpisujesz to 9.5 to masz obcinane do 9. Rozumiesz?

z Niebieskim pozdRowieniem,
Doman89


------------------------ [ Dodano po: 2 minutach ]

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Tu masz pierwsze poprawki co by zmniejszyć ilość warningów :)

------------------------ [ Dodano po: 4 minutach ]

W pliku C masz dwie funkcje ;)

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


W programie teraz spróbuj użyć funkcji:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 paź 2014, o 09:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 sty 2014
Posty: 336
Lokalizacja: Grodzisk Mazowiecki
Pomógł: 13

Dziękuję 

Zanim wrócę do dom i przetestuję to zadam kilka pytań. 
Rozumiem że zapis int i =9.5 jest błędny ponieważ obcina mi ułamek. 
Powinno być float i =9.5  
Pytam ponieważ myślałem że skoro eclipse nie dał ostrzeżenia to jest ok. 
Czy tą nową funkcję muszę deklarować w pliku lcd.h? 
Czy mam ją umieścić w pliku lcd.c czy main? 

Rozumiem że w poniższej funkcji powinno być float i zamiast float zmienna To pozostałości z początku tematu gdzie nazwałem swoją zmienną zmienna
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
"Nie programuj w święta - bug się rodzi"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 paź 2014, o 14:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

tomson5 napisał(a):
Zanim wrócę do dom i przetestuję to zadam kilka pytań.  Rozumiem że zapis int i =9.5 jest błędny ponieważ obcina mi ułamek.  Powinno być float i =9.5   Pytam ponieważ myślałem że skoro eclipse nie dał ostrzeżenia to jest ok. 


Tak int - tylko liczby całkowite,
float - liczby zmienne.

Czemu eclipse nie dał ostrzeżenia to nie wiem.

Cytuj:
Czy tą nową funkcję muszę deklarować w pliku lcd.h? 


Jeżeli chcesz korzystać z niej w pliku main.c czy jakimkolwiek innym to oczywista oczywistość, że tak ;)

tomson5 napisał(a):
Czy mam ją umieścić w pliku lcd.c czy main? 

Na logikę w lcd.c - to jest Twoja biblioteka do wyświetlacza i tam trzymaj wszystkie funkcje z nim związane.

Cytuj:
Rozumiem że w poniższej funkcji powinno być float i zamiast float zmienna To pozostałości z początku tematu gdzie nazwałem swoją zmienną zmienna


Kolega tak ma być float, ale wyżej co Ci podałem to z kolei ja się zakręciłem - tak to jest przy metodzie CTRL+C i CTRL+V :)
Naturalnie nie potrzebny Ci itoa tylko funkcja z którą walczymy "fascii" ;)

Zaraz zamieszczę kod poprawiony.

z Niebieskim pozdRowieniem,
Doman89


------------------------ [ Dodano po: 7 minutach ]

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 paź 2014, o 18:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 sty 2014
Posty: 336
Lokalizacja: Grodzisk Mazowiecki
Pomógł: 13

Coś się ruszyło ale nie wiem czy na lepsze :)
Na zdjęciu widać w jaki sposób wyświetla tą liczbę.
Obrazek

Dla pewności że robię wszystko ok zamieszczam cały plik lcd.c
Na końcu pliku jest to co uzupełniłem teraz
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Dla pewności że w pliku lcd.h jest wszystko Ok zamieszczam go również
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


nie jestem pewny w jaki sposób mam zadeklarować w pliku lcd.h poniższą funkcję
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
"Nie programuj w święta - bug się rodzi"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 paź 2014, o 19:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

Kolega aleś mi zagwózdkę wrzucił ;)

Tu masz odnowioną funkcję fascii:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Mam nadzieję, że wreście coś zaśmigoli :P

Testowałem w/w funkcję na C dla PieCa i z takim programem mi dało pozytywny wynik:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


z Niebieskim pozdRowieniem,
Doman89



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 21:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 sty 2014
Posty: 336
Lokalizacja: Grodzisk Mazowiecki
Pomógł: 13

Witam po przerwie. Niestety nie chce mi działać to nadal. Nie chciałem zawracać głowy w weekend dlatego teraz dopiero piszę.
Pomyślałem sobie że może rozwiązaniem jest aby uzyskać dwie liczby
Dziesiętną i ułamek np: 12.5 rozbić na 12 i 5 a pomiędzy nie wsadzić kropkę.

Siedzę i myślę nad tym jak dokonać takiego "rozbicia"??

_________________
"Nie programuj w święta - bug się rodzi"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 21:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

Kolega jak będę miał jutro czas przed pracą to po testuję to na moim AVR + MatrycaLED, zobaczymy co z tego wyjdzie.

z Niebieskim pozdRowiniem,
Doman89



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 paź 2014, o 08:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 sty 2014
Posty: 336
Lokalizacja: Grodzisk Mazowiecki
Pomógł: 13

W nocy spać nie mogłem. Wydumałem że część dziesiętną otrzymam przez przypisanie zmiennej float do zmiennej int
Natomiast część ułamkową chyba otrzymam przez pomnożenie przez 100 i potraktowanie wyniku modulo %
Dzięki że jeszcze coś Ci się chce :-)

_________________
"Nie programuj w święta - bug się rodzi"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 paź 2014, o 12:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

Kolega jakieś 4 godziny bojów i u mnie się ładnie wyświetlają float'y :)

Całość leci na PW bo za dużo czasu na to poświęciłem :P

tomson5 napisał(a):
Dzięki że jeszcze coś Ci się chce


To akurat wina p. Mirka zaraża pozytywną energią :lol:

Tylko już nie pisz, że nie działa :!: 8-)

z Niebieskim pozdRowieniem,
Doman89


------------------------ [ Dodano po: 17 minutach ]

tomson5 napisał(a):
Natomiast część ułamkową chyba otrzymam przez pomnożenie przez 100 i potraktowanie wyniku modulo %


Wszystko pięknie ładnie tylko jak po przecinku byś miał np. 05, to Ci zero skasuje i masz błędny wynik ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 paź 2014, o 17:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 sty 2014
Posty: 336
Lokalizacja: Grodzisk Mazowiecki
Pomógł: 13

No cóż hm... Pozostało ustalić tylko na jaki adres wysłać piFko :D
Jeszcze raz dziękuję za okazaną pomoc. Jeszcze nigdy nikt nie poświęcił mi tyle czasu na jakimkolwiek forum.
Przykład godny naśladowania.

_________________
"Nie programuj w święta - bug się rodzi"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 paź 2014, o 23:38 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

tomson5 napisał(a):
No cóż hm... Pozostało ustalić tylko na jaki adres wysłać piFko

Kolega może być druga używka ;) Kopsnij jakąś "pigułeczkę" xD

tomson5 napisał(a):
Jeszcze raz dziękuję za okazaną pomoc. Jeszcze nigdy nikt nie poświęcił mi tyle czasu na jakimkolwiek forum.Przykład godny naśladowania.

Bo to nasze forum takie fajne jest ;)

Czyli mam rozumieć, że wreście udało się osiągnąć pozytywny wynik? :)

z Niebieskim pozdRowieniem,
Doman89


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 paź 2014, o 11:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 sty 2014
Posty: 336
Lokalizacja: Grodzisk Mazowiecki
Pomógł: 13

Śmiga jak złoto :-)
Apetyt rośnie na więcej. Myślę teraz nad rysowaniem linni ukośnych lub sinusoidy

_________________
"Nie programuj w święta - bug się rodzi"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 paź 2014, o 11:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

tomson5 napisał(a):
Myślę teraz nad rysowaniem linni ukośnych


Kolega to akurat raczej żaden problem. Przyda się algorytm Brenshama (mogę lekko przekręcić), naturalnie znajdzie kolega to w jednym z poradników o oledach p. Mirka.

Co do sinusoidy to była by kolejna "zabawa", ale raczej nie będzie problemu.

Teoretycznie:
1. biblioteka bodajże math.h
2. funkcja f(x) = sin(x) - tu podajesz swoja wartosc; punkt y będzie się zmieniał w zależności od x.
A x możesz przypisywać z podanego przez Ciebie zakresu w petli for.

Do ogarnięcia temat jak najbardziej ;)

z Niebieskim pozdRowieniem,
Doman89


------------------------ [ Dodano po: 2 minutach ]

A i ewentualne skalowanie wartości jakby wykres był za mały np. ale to już też "pikuś".


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 paź 2014, o 20:38 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 sty 2014
Posty: 336
Lokalizacja: Grodzisk Mazowiecki
Pomógł: 13

No no ciekawe rzeczy. Spróbuje użyć poniższego kodu

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Zobaczymy co z tego wyjdzie.
Co do poradnika Oled to jeszcze nie dotarłem do tego momentu.


Edit: Udało się!!!! Za pierwszym podejściem :) Mam krzywe.

_________________
"Nie programuj w święta - bug się rodzi"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 paź 2014, o 01:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

Kolega to jak już masz taki głód na poligon doświadczalny to jedziesz dalej :D

w main.c zrób sobie taki "teścik":
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


z Niebieskim pozdRowieniem,
Doman89


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 paź 2014, o 17:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 sty 2014
Posty: 336
Lokalizacja: Grodzisk Mazowiecki
Pomógł: 13

Coś nie zaskoczyło. Narysowało mi tylko pionową linię

W main.c zrobiłem tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


W pliku lcd.c Funkcja lcd_pixel została sklecona na bazie funkcji lcd_line rysującej linię
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
"Nie programuj w święta - bug się rodzi"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2014, o 10:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

Kolega tu masz moją funkcję którą wrzuciłem:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


I efekt:
Obrazek

Piksel w górnym lewym rogu to "debugger" :D

z Niebieskim pozdRowieniem,
Doman89


------------------------ [ Dodano po: 3 minutach ]

Kurczę teraz zauważyłem u Ciebie błąd :P

Kolega Ty masz w funkcji na sztywno przypisywane 30, więc nie dziw się, że masz linię - masz 1 parametr stały.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2014, o 12:26 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 sty 2014
Posty: 336
Lokalizacja: Grodzisk Mazowiecki
Pomógł: 13

Nie mogę się doczekać kiedy to sprawdzę :-)
Wpisałem tam pod X wartość 30 ponieważ nie wynikało w tamtym kodzie że x=krok Teraz już kumam.
Dzięki po raz N-ty.



EDIT: Poszło :) walczę teraz z rozciąganiem tej amplitudy.

_________________
"Nie programuj w święta - bug się rodzi"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2014, o 23:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

tomson5 napisał(a):
Poszło walczę teraz z rozciąganiem tej amplitudy.


Z tym to najmniejszy problem ;)

Jak chcesz wyskalować w "x" czy "y" to masz właśnie operacje mnożenia:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Jak chcesz wypozycjonować to dodajesz wartości:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Czyli u mnie masz właśnie +7 bo mam pola 0-15, więc aby był środek.

Oczywiście możesz uzyskać dokładniejszą sinusoidę robiąc iterację w pętli np. co 0.01 - ale dla mikrokontrolerka to już mocne obciążenie :P

z Niebieskim pozdRowieniem,
Doman89



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 38 ]  Przejdź na stronę 1, 2  Następna strona

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO