Przy zamianie ośmiocyfrowych liczb long do postaci float pojawiają mi się zaokrąglenia na ostatniej pozycji. Czasem o jedną, czasem o kilka jednostek. Na przykład: Zmienna long przed konwersja: 88888889 Zmienna float po konwersji: 88888888.00 Nie dokopałem się do powodów takiego stanu rzeczy. Jakieś pomysły jak z tym walczyć?
Witam wszystkich Mam mały problem. Mmam dwie zmienne FLOAT zmienna1; BYTE zmienna2; i chce zrobić konwersje zmienna=(BYTE)zmienna1; to które bity mi wezmie ze zmiennej1 i wstawi do zmiennej2. np. jezeli mam FLOAT zmienna1=3421.2323 lub zmienna1= 65653421.2323; to co odpowiednio zostanie?
To nie ma znaczenia czy float czy double. Jeśli zmienna jest typu float to dodatkowo dochodzą jeszcze konwersje float->double double->float fpu_enable() jest wywoływane wcześniej - to jest Twój kod. Problem i tak jest w tym, że nie ma obsługi sprzętowego fpu - kompilator wszystkie operacje na zmiennoprzecinkowych wykonuje programowo.
Udało się to wykonać, jestem na etapie konwersji zmiennej string na float. I teraz po konwersji mam zmienną A=27.500, chciałbym aby zmienna A miała postać i była wyświetlana jako A=27.5, czyli bez tych dwóch zbędnych zer. Jak można je usunąć?
Przedewszystkim zrób to inaczej... po prostu... main() { char bufor[20]; ... funkcja(bufor, ...); } funkcja(char* bufor, ...) { } I w ogóle nie ma problemu. Zmienna tmp w ogóle jest nieporozumieniem. Przecież wewnątrz funkcji możesz sobie zadeklarowac tablicę o dowolnym wymiarze... funkcja(...) { char tablica[1000]; } A pamięć możesz zwalniać gdzie...
[syntax=c] int16 t16; int16 tTemp; t16 = (buf[0] | buf[1] << 8); tTemp=(t16*10)/16; [/syntax] "buf" to odczyt "scratchpad" termometru. Zmienna tTemp zawiera temperaturę w 0.1st, to znaczy np. 13.5 to będzie 135. Potem, jak chcesz to dziel przez 10 i na float albo dzielenie przez 10 z resztą i bez reszty, tylko trzeba znaku pilnować: [syntax=c]...
Troszkę monolog z mojej strony ale - zostawię rozwiązania dla potomnych. Przyczyna wyświetlania tylko 2 cyfr dość banalna jak się okazało: - zmienna Sensor1Data była zadeklarowana jako int - zmieniono na float - konwersja Sensor1Data = atoi(Sensor1CharMsg); w prawidłowej postaci powinna wyglądać Sensor1Data = atof (Sensor1CharMsg); Śmiga - trzeba rozbudowywać...
Witam! Wiersz z if: Przede wszystkim, zmienna x jest zmienną typu float (zmiennoprzecinkowa) a znaki reprezentowane są przez liczby typu int, zatem x powinno być zadeklarowane jako int. Pamiętaj, że przy operacjach arytmetycznych, typ char rozszerzony jest "z urzędu" do typu int a po ich wykonaniu przykracany do typu char! Dalej: w tym samym wierszu...
Nigdzie nie podałeś (albo ja niedowidzę) jakiego typu jest zmienna temp_current ... a to pewnie jest przyczyną problemów
OK ... podmieniłem pętle czasowe na te wg. "bvr". Wykrywanie OK i odczyt około 0x017A. Pytanie ... widzę w jego kodzie jakąś konwersję ... do czego ona służy? Zmienna float jaki ma zakres danych? Sorry za pytania, ale nigdy nie posługiwałem się zmiennymi z przecinkami ;) Dodano po 34 //Jeszcze parę pytań ;) Jak ze zmiennej float wyciągnąć części dziesiętne,...
1. ($44*524288) + ($79*65536) + ($AC*256) + $CD 2. ($44*524288) or ($79*65536) or ($AC*256) or $CD 3. ($44 Shl 24) or ($79 Shl 16) or ($AC Shl 8) or $CD najszybsze chyba te bajty przedstawiają liczbę type DWORD więc musisz poprzez pointer wpisać je do zmiennej Float żeby wynik był poprawny. Albo jeśli wiesz jak jest skonstruowana zmienna float - to...
metoda kolejna to w wywołaniu lcd.print aby wyświetlić wartość zmienna jako liczbę całkowitą: A gdzie w tym kodzie masz zmienną w postaci liczbowej? Wszystko co dostaje z Thingspeak to stringi. Musi je więc najpierw skonwertować do zmiennej liczbowej aby wyświetlić używając[syntax=c] lcd.print(zmienna, 1);[/syntax]. Jak juz konwertuje, to zrobi od...
odczytanie i wysłanie całego bajtu [syntax=c]void send_byte(char wartosc) //wysyla caly bajt do ukladu { unsigned char i; //licznik unsigned char pom; //zmienna pomocnicza for(i=0; i<8; i++) { pom = wartosc>>i; //przesuniecie bitowe w prawo pom &= 0x01; //skopiowanie bitu do zmiennej pomocniczej send(pom); //wyslanie bitu na magistrale...
Oczywiście, że mam rację - nie raz się o tym przekonałem. Nawet na stronie, którą podałeś jest napisane - podejrzewam, że z resztą przez Ciebie: "... Ponieważ podana stała zostanie wyliczona na etapie kompilacji programu, w efekcie w finalnym kodzie żadne obliczenia zmiennopozycyjne nie będą wykonywane." STAŁA a ja pisałem o ZMIENNEJ - a tu "obliczenia...
Napisałem poniższą funkcję do konwersji liczby typu float na stringa, który go reprezentuje. W symulatorze AVR Studio sprawdziłem czas takiej konwersji przy zegarze 16MHz i wyniósł on ok 500µs. Czy ma ktoś pomysł jak bardziej zoptymalizować tą funkcję? Inna sprawa to optymalizacja wykorzystywanej pamięci, bo w tej chwili wykorzystuje jeśli poprawnie...
...proszę o sprawdzenie i korektę błędów z komentarzem... //--------------------------------------... // >>>>>>>>>>... V O L T O M I E R Z <<<<<<<<<<... //--------------------------------------... //##################...
Witam. Odpaliłem właśnie bibliotekę freemodbus na avr i potrzebuje informacji w jaki sposób zapisać w rejestrach Read Holding registers liczbę float. Rejestry Read Holding registers w tej bibliotece są uint32_t. Ogólnie w programie działam na liczbach całkowitych. Przykładowo mam taką wartość rzeczywistą pewnej zmiennej (5,25) to mnożę ją razy 100 i...
Witam, Piszę program na Atmega8 który wyświetli mi liczbę float na wyświetlaczu BCD. Sama zmienna globalna float nie zajmuje za dużo miejsca. Moim sposobem na wyświetlenie tej liczy jest: [syntax=c] int pom; volatile float zmienna = 34.9; volatile int jednosci, dziesiatki, setki; i dalej: pom = (zmienna*10); // 34,9 zamieniam na 349 jednosci = (pom%100)%10;...
Kwestia połączeń jest raczej mniej prawdopodobna, bo błędny wynik oznaczałby błędy transmisji, a te okresowo powodowałyby "przeinaczenie" komend i brak poprawnej komunikacji z sensorem (co przy dobrze napisanej obsłudze 1wire wyrzuciłoby komunikat o błędzie). Tutaj jest kwestia tylko samego wyniku i właśnie przy samej konwersji szukałbym przyczyny....
1.Po pierwsze zrób tablicę int, a nie float - konwersja jest niepotrzebna, a i w pamięci będzie to zajmować 2x mniej miejsca. 2.Zmienna x jest wykorzystywana jako indeks wyłącznie w przerwaniu ADC, nie musi być więc globalna, ani volatile, zrób ją jako static uint8_t x; w ramach ISR. 3. Trybu free running nie musisz zatrzymywać, niech sobie sampluje...
Witam Do paru dni usiłuje uruchomić banalny program odczytujący temperaturę z DS18b20 oparty na artykule zamieszczonym w necie: http://www.jaglarz.com/ja/elektronika/ds... Niestety nie udaje się uruchomić programu na wyświetlaczu -0.1 Znalazłem identyczny temat na elektrodzie ale bez konkretnej odpowiedzi http://www.elektroda.pl/rtvforum/topic18...
Witam, Zgodnie z lekturą http://www.jaglarz.com/ja/elektronika/ds... próbuję odczytać temperaturę. Przepisałem wszystko tak jak jest w dokumencie, sprawdziłem kilka razy - wydaje mi się że błędu nie popełniłem. Mimo to odczyt temp. nie działa. Otrzymuję wynik -0.1 Oto kod: /* * ds18s20.h * */ #include <avr/io.h> #include <stdlib.h>...
Funkcja ta konwertuje zmienna typu double (ten typ na AVR nie jest supportowany, jest to rownowazne z typem float) na string, do bufora, ktorego adres podajesz jako jeden z parametrow. Bufor musi byc na tyle duzy, zeby pomiescic maksymalna konwertowana liczbe + jeden bajt na znak konczacy string (0). Jesli masz bufor o dl. np. 5 bajtow a sprobujesz...
Dziękuje wszystkim za odpowiedź, kod który mu wpisuje działa. Problem był z obsługą ADC... ADC ładnie pracują ale bez deklaracji preskalera? Kod na którym mi porty działają to: [syntax=c]#include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include "HD44780.h" #include "HD44780.c" #include <stdio.h> #define...
Witam, mam problem z przetwornikiem ADC w LPC1768. W instrukcji użytkownika LPC1768 jest napisane, że ADC jest 12-bitowy ale gdy wartość rejestru danych ADGDR jest równa 0x3FF (10 bitów !!!) jest to już napięcie bliskie/równe Vrefp. W moim przypadku z rejestru ADGDR odczytuję wartości większe od 0x3FF. Na wejście przetwornika podaję napięcie zmienne...
Witam Programuje 2x ADC które szczytuje mi wartości z potencjometrów podłączonych przez dzielnik napięcia do portów PC0 PC1, za pomocą przerwania ADCSRA ( ADIE -Kiedy ten bit jest ustawiony wraz z I-bitem w rejestrze SREG wtedy aktywne jest przerwanie od zakończenia konwersji.) Robię tak za pomocą przerwania a nie timera bo nie chce aby mi ciągle czytał...
Na początek podam kod:[syntax=C] #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include "hd44780.h" //definicja napięcia referencyjnego #define VREF 5.05 volatile float adc;//zmienna do obliczeń napięcia int main(void) { char wynik[]=" ";//bufor tekstowy, wyczyszczenie bufora //Inicjalizacja ADC ADCSRA = (1<<ADEN);...
Witam! Mam problem co do odczytu temperatury z czujnika DS18B20. Jest podłączony pod PD7. Wynik to -0.1. Jeżeli odepnę czujnik wynik jest ten sam. Wie ktoś dlaczego ? Kod: ... #define WE 7 #define PORT_1Wire PIND #define SET_1Wire DDRD &=~_BV(WE) #define CLEAR_1Wire DDRD |=_BV(WE) char buf[8]; //resetujemy magistrale - czekamy...
Dzięki za chęć pomocy, oto program który wysłałem na maila: #define F_CPU 1000000UL // oscylator wewnetrzny AtMega8 #include <avr/io.h> #include <stdlib.h> #include <util/delay.h> #define WE 5 // przypisanie linii 1-Wire dla pinu PC5 #define PORT_1WIRE PINC #define CLEAR_1WIRE DDRC&=~_BV(WE) // stan niski magistrali #define...
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)......
Witam, mam problem z tą komendą search rom. Wziąłem kod od kolegi OmikronNs, który jest powyżej i wszystko śmiga ale tylko gdy daje komende Skip ROM, a przy probie odczytu kodu ROM i użyciu Match ROM, nie wyswietla temperatury. Tutaj jest mój kod: [syntax=c]int main(void) { char buf[8]; //Zmienna potrzebna przy konwersji temperatury unsigned char volatile...
Witam, nie koniecznie problem ale chciałem przedstawić sposób na to aby przedstawić dowolną zmienną z pomocą zmiennej tekstowej string (ciąg HEX) i odwrotnie. Podana przeze mnie metoda robi dużo więcej niż tylko zmienia int na hex czy hex na integer obsługuje oprócz tego String,Int, Long, byte, word, fload, double, oraz tablice i struktury i dowolna...
Witam. Mam problem z kompilacja programu. Posiadam gotowego maina i biblioteki tylko nie wiem czy to wszystko dobrze robie... Jest to program do wytrawiarki który steruje grzałka i wyświetlaczem LCD. Chciałbym go nieco przerobic. Tak wyglada main: http://obrazki.elektroda.pl/5703366500_1...
Napisałem taki oto program do pomiaru napięć: Kiedy uC działa z wewnętrzną częstotliwością 1MHz i ma wyłączony JTAG, czyli ustawienia E1 i D9 wszystko jest ok (ADC4 i ADC5 mierzą napięcia). Kiedy jednak zmieniłem ustawienia na wewnętrzną częstotliwość 8MHz lub 4MHz i też wyłączony JTAG, czyli E4 i D9, to wyświetlacz pokazuje mi podobne napięcie w obu...
Ja bym to zrobił zupełnie inaczej: Stała konwerja ADC - > przerswanie i w przrerwniu adc obsługa logiki ADC czyli liczenie jakiejs sredniej , odrzucanie, przypadkowych wynikow itp Jak pomiar jest gotowy to ustawiasz flage ze pomiar jest gotowy. możesz sobie zrobic kolejke wyników i inne wodotryski Jeżeli masz żłozone obliczenia (np float) bierzesz i...
Google i Wikipedia stoją przed Tobą otworem: http://en.wikipedia.org/wiki/Recursive_d... http://www.dreamincode.net/forums/showto... W przypadku parsera z Wikipedii interesują cię produkcje expression, term oraz factor. Funkcje przerabiasz tak, żeby zamiast true/false zwracały również wartość wyrażenia (np. użyj struktury/klasy),...
Walk ciąg dalszy, dla łatwiejszego zrozumienia tego makaronu wywaliłem to co uznałem za stosowne, zostawiłem tylko te funkcje które pozwolą mi pomierzyć V na 2 kanałach. Bez przerwań, bez dodatkowych deklaracji wprowadzających zamęt. Ale dalej nie działa tak jak bym tego chciał :/ #include <avr/io.h> #include "hd44780.h" #include <stdlib.h>...
Witam, chciałem przetestować porty ADC wyświetlając wynik na LCD. Korzystam z kodu przedstawionego tutaj: http://obrazki.elektroda.pl/3988361600_1... [syntax=c]#include <avr/io.h> #include <util/delay.h> #include "HD44780.h" #include "HD44780.c" #include <stdio.h> //definicja napięcia referencyjnego #define VREF 5.0...
Mam płytkę z PIC16F877A mam podłączony wyświetlacz, na którym na bieżąco wyświetlam napięcie na AN0 (analog nr 0).Chciałem póki co zrobić zwykły woltomierz, ale mam problem ze sformatowaniem części dziesiętnej. 10bit ADC ma teoretycznie 5 mV dokładności,ale mam problem bo nie według kompilatora nie mogę używać typu float. -Używając sprintf( %f , zmienna)...
Witam! Napisałem program w C do mierzenia napięcia przez ADC w ATmega8, odczytuję z przetwornika wartość bitową od 0 do 1023. I dotąd jest wszystko ok, ale chcę sterować diodą na innym pinie(np PB1) w ten sposób, że gdy wartość odczytana będzie mniejsza od 500 to dioda ma nie świecić, a gdy przekroczy 500 ma świecić. Problem w tym, że gdy włączę układ...
operuj na zmiennych typu uint8_t (osobno część całkowita, osobno dziesiętna), wówczas nie będziesz musiał marnować kodu na float i jego konwersję, co jest " trochę nieoptymalne". poszukaj w sieci bibliotek Petera Danneggera - będzie szybciej. poszperaj w postach na forum, było już chyba wszystko na temat tego czujnika. Wydaje mi się że unit8_t nie...
powinno wystarczyć (unsigned int)( (float)stala * 0.58 ) Koledzy, ale kombinujecie z tymi rzutowaniami :D "Wystarczy" wyrażenie: unsigned int s = stala*0.58; kompilator prawdopodobnie w takim przypadku wystosuje ostrzeżenie, ale jeśli upewnimy go zapisem: unsigned int s = (unsigned int)(stala*0.58); to uspokoi się, przekonany, że wiemy...
Witam. Od niedawna uczę się ARMów i mam problem. Kiedyś napisałem funkcję do obsługi ds18b20 na AVRy, teraz chciałem ją zaimplementować pod LPC2142 w środowisku Keil i niestety mi nie wychodzi. Poniżej przedstawiam kod źródłowy już zmodyfikowanej funkcji pod LPC. ds18b20.h #include <stdio.h> #include "lpc214x.h" #define WE 20 #define...
Witam, robię miernik do pomiaru prądu, napięcia i mocy na Atmega8 w C. Pomiar napięcia i prądu bez problemu, ale mam problem z obliczeniem mocy. Jak pomnożyć dwie wielkości ADC z dwóch wejść ???? [syntax=c]#include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include "HD44780.h" #include "keyb.h" #define VREF 5.0...
Poniżej źródło w którym mam: -pomiar ADC -pomiar szerokości impulsu PWM wysterowanie przekaźnika -USART Mikrokontroler ma spełniać funkcję sterownika do ledów jako oświetlenie samolotu z wyróżnieniem wszystkich etapów startu jak kołowanie włączenie silników itp. [syntax=c] #include <avr/io.h> #include <inttypes.h> #include <util/delay.h>...
Witam, problem polega na tym, że po przekroczeniu wartości 255 na ADC co u mnie odpowiada 8,6V wartości pobierane z ADC nie zmieniają się aż do osiągnięcia wartości ok 280. To samo ok 743 do 768. Napięcie na wejściu ADC zmienia się ale odczytywane wartości już nie. Być może problemem jest: return ADCW; które może zwraca 8 bitów zamiast 10? Wszędzie...
`sprintf()` używa bardzo dużo pamięci. Niewinnie wyglądające `val * 3.3 / 4095;` to w istocie mnożenie na typie `double` (standardowy błąd osób które biorą się za zmienny przecinek). Proponuję więc zacząć od: - użycia `s i printf()` (wersja bez wsparcia dla zmiennego przecinka, zużywa dużo mniej RAMu, nie robi alokacji dynamicznej) [zakładam że mowa...
Witam! Podaję Ci zmodyfikowany nieco programik. Dodano po 11 Witam! ad Twój dodatek: Po pierwsze, lepiej liczbom zmiennoprzecinkowym nadawać typ double zamiast float, bo typ float zawsze jest awansowany niejawnie do typu double, podobnie jak typ char i short do typu int. Ale idziemy dalej. w wierszu: [syntax=c]srednia = suma / ilosc;[/syntax]suma i...
Czyli wyczyszczenie magistrali następuje w pierwszej linijce tej funkcji, tak? Mam cały program i coś jest nie tak. Temperaturę z MCP9700 odczytuje prawidłowo, a z dallasa mam ciągle "cisza". Poza tym wszystko działa bardzo wolno i jak wyjmę kondensator filtrujący spomiędzy pinów MCP9700 to nie reaguje na zmianę napięcia. Procesor to ATmega8 i jest...
Problem związany jest z konwersją float/double do AnsiString. Generalnie wykonuję to tak: [syntax=c]jakas_nazwa_obiektu->Caption = "Jakiś napis: " + jakas_nazwa_obiektu->Caption.FloatToStrF... ffExponent, 40, 1);[/syntax] Zgodnie z [url=http://docs.embarcadero.com/product...
Mam kilka pytań bo nie do końca mogę zrozumieć kilka terminów dotyczących funkcji przetwornika ADC atmega16.Powiedzmy że ustawiam sobie na dzielniku napięcia poprzez potencjometr dokładnie napięcie 1/3 napięcia akumulatora i podpinam do do pinu ADC1czyli PA1 mojej atmegi16. Czy wtedy w VREF wpisuję np. 4.0(tzn.1/3 napięcia akumulatora) ?.czy mam wpisać...
Witam serdecznie. Wykonuje projekt holtera EKG. Zmierzone napięcie chciałbym wysłać przez moduł bluetooth do komputera. Mój wzmacniacz ma pasmo 100Hz więc chce zastosować częstotliwość próbkowania 200 Hz. [syntax=c] #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #define VREF 5.05 #define ADCIN PA7 #define F_CPU...
Cześć, chcę zrobić prosty termometr. Do pinu PC1 mojej Atmegi8A mam podpięty czujnik temperatury [url=https://botland.com.pl/pl/analogowe... 36, z którego odczytuję wartość ADC (ale nie mam pewności czy ten wynik jest poprawny.) Do pinu AREF...
Witam od dobrych paru dni męczę się z wyświetleniem temperatury na wyświetlaczu 7-segmentowym. Sam wyświetlacz działa bez najmniejszych zarzutów :[syntax=c] #include<avr/io.h> #include<util/delay.h> #include<avr/interrupt.h> #define wyjA (1<<PB0) #define wyjB (1<<PB1) #define wyjC (1<<PB2) uint8_t tab[]={0x40,0xf9,0x24,0x30,0x19,0x12,0x0...
zrobiłem z tą flagą wewnatrz przerwania tzn : //---------Funkcja 8--obsługa przerwania licznika T0-- SIGNAL (SIG_OVERFLOW0) { licznik++; if(licznik==31) { licznik=0; update_required=1; } TCNT0 = 0x03; } funkcja main: while(1) { sei(); PORTB |= _BV(3); // rozładowanie kondensatora C20 pomiar_U1;...
Witam, wczoraj napisałem (w zasadzie to skopiowałem z tego poradnika:[url=http://www.botched.co.uk/... podstawowy programik do obsługi MPU6050 i uwaga(!) - odczyt z żyroskopu był poprawny ( problem był z przesyłem przez UART, ale napisałem jakąś funkcję, która zamienia zmienna typu int na tablice char i...
Program przepisałem całkowicie z http://student.agh.edu.pl/~coni/avr_1wir... zmieniłem tylko port na PC5. Najpierw podłączyłem dobrze i otrzymywałem takie coś: -16.1\0x00\0x00\0x00-16.1\0x00\0x00\0x00... No w moim mieszkaniu to tak ok 24°C. Potem wyciągnąłem...
Mam pytanie dotyczące łączenia instrukcji programów w całość . Chodzi mi o to że robię sobie termometr w którym odczytam sobie temperaturę wewnętrzną ,zewnętrzną a także napięcie swojego akumulatora i czas,datę z układu DS1307.W jaki sposób połączyć kilka plików to ze sobą w sposób profesjonalny? Czy wszystko ująć w jednej pętli "while"?.ale wtedy są...
Witam Mam pytanie dlaczego poniższy kod nie pozwala mi dogadać się z DS18B20. Napisałem/przepisałem go na bazie opracowania Pana Cezarego Klimasz "Obsługa interfejsu 1-wire na przykładzie obsługi DS18B20". Proszę o pomoc. Dziękuję #include <string.h> #include <avr/io.h> #include <avr/interrupt.h> #include <avr/pgmspace.h> #include...
Przepraszam o pytanie z cyklu 1000 i 1 opowieści ale kombinuje na wszystkie mi znane sposoby i sposoby z forum a nawet gotowca odpaliłem i też nie działa. Problem jak oszukam sprawdzanie DS to mam 0.0 jak nie oszukam to mam brak czujnika czyli mój DS nie odpowiada na reset czy jakoś tak (w innym kodzie zwracał mi 0.8). Posprawdzałem piny ścieżki i deklaracje...
Zmienna 'channel' byla typu int poprzedzona modyfikatorem volatile, zmiana jej typu na uint8_t nic nie zmieniła w działaniu programu. Dla jasności wklejam cały obecny kod: [syntax=c]#define F_CPU 10000000L #include <avr/io.h> #include <avr/interrupt.h> //definicje //SILNIK PRAWY #define silnikP1_ON PORTD |= _BV(0) #define silnikP1_OFF PORTD...
Witam ponownie. Prośba jak w poprzednio. Zupełnej zmianie uległ sposób sterowania grzałkami. Obecnie problem polega na tym, że na wyjściu grzałek, bez względu na temp., nic się nie dzieje. Załączam zmodyfikowany kod: include <stdio.h> #include <avr/io.h> #include <util/delay.h> #include "hd44780.h" #include "ds18b20.h"...
Witam, napiąłem program do obsługi termometru cyfrowego DS18B0, program kompiluje się bez błędu a po wgraniu na wyświetlaczu wyświetla się tylko -1.0. Proszę o sprawdzenie kodu bo nie wiem już gdzie jest błąd. DS18B20.H #ifndef ds18b20 #define ds18b20 #define WE0 #define PORT_1WIREPINC #define SET_1WIREDDRC &= ~_BV(WE) #define CLEAR_1WIREDDRC...
Witam Ten temat pewnie tysięczny raz jest poruszany, ale nie udało mi się jak dotąd znaleźć wyjścia z sytuacji. Sprawa wygląda tak: mam podpięty czujnik Ds1820 do portu D pin 4. Standardowe podłączenie: VCC - VCC DATA - PIND.4 GND - GND z pinu PIND.4 portu opornik i na VCC. Kolega użyczył mi kawałek kodu w Bascomie do obsługi 1-wire, i sprawdziłem i...
Cześć, Ponieważ udało mi się poprawnie odczytać temperaturę z termometru cyfrowego DS18B20 na module prototypowym eXtrino XL z AtXmega128a3u na pokładzie - pragnę się podzielić tym minikodem z początkującymi osobami. Myślę, że informacje zawarte w tym przykładzie, pozwolą osobom początkującym (czyli takim co już potrafią migać diodą) na zrozumienie...
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...
Witam, Mam pewien problem i nie bardzo pomysł na jego rozwiązanie. Mam program zegara i czujnikami dallas18b20 i wszystko fajnie działa. Potrzebowałem uruchomić dodatkowo przetwornik adc i zaczęły się schody. Gdy skonfigurowałem przetwornik program po dojściu do momentu inicjalizacji przetworika się wiesza, a dokładniej wygląda, jakby procek się resetował...
O writelong czytałem. Zmienna ma liczby od 500 do 1200 dokładność co 1 tak mniej więcej przewiduje. W tej chwili działa tak odczyt char Val_PWM_eeprom[4]; Val_PWM_eeprom[0]= EEPROM.read(10); Val_PWM_eeprom[1]= EEPROM.read(12); Val_PWM_eeprom[2]= EEPROM.read(14); Val_PWM_eeprom[3]= EEPROM.read(16);...
Witam, próbuję odczytać temperaturę z mojego czujnika jednak wynosi ona ciągle -0.1, a gdy próbuje pobrać odczytać ID wyświetla mi puste miejsca lub krzaczki. Przy próbie podłączania za pierwszym razem niestety źle spojrzałem na schemat i odwrotnie podłączyłem zasilanie więc teraz nie wiem czy to wina kodu czy może jednak układu. Chociaż jakby coś z...
http://obrazki.elektroda.pl/6035089300_1... Moduł Arduino Yun jest świetnym sposobem, aby wejść w tematykę Internetu Rzeczy (IoT). Arduino Yun to niewielki moduł integrujący w sobie Linuxa na Układzie z światem Arduino. Poniższy projekt jest wprowadzeniem w tematykę Arduino Yun, oprogramowywanie sensorów w Pythonie i PHP oraz w tworzenie...
Witam Dopiero zaczynam przygodę z avr-ami dlatego chciałem się poradzić bardziej doświadczonych kolegów. W programie chciałem odczytać temperatury z 8 czujników KTY podłączonych do ADC. Odczytu dokonuję w przerwaniu, natomiast wyświetlenia i przeliczenia na stopnie Celsjusza chciałem dokonać w main. Niestety wyświetla mi jakieś dziwne wartości. Może...
Cześć, Znalazłem w kodzie: if ( IN_L>=0x00008000 )IN_L |= 0xffff0000; Czyli: jeśli liczba ma znak "-" to robimy OR'a tej liczby z 0xffff0000 przez co mamy tę samą liczbę, także w kodzie U2 tyle, że zapisaną na 32 bitach (jeśli jest dodatnia to starsze 16 bitów defaultowo wypełni się zerami) - czyli zmienna typu int jest w C traktowana jako zmienna zapisana...
Witam Mam 7 układów DS18B20 i chciałem dokonywać ich odczytu w kolejności. W przerwaniu od Timer0 ustawiam co 4 sekundy flagę, która ma spowodować wywołanie programu odczytu. ................ Tylko, że wstawienie tego w Case nie ma chyba sensu, bo w momencie wyboru z Case, dane jeszcze nie są obliczone. Pierwsza uwaga to nie dajesz wymaganego czasu...
https://obrazki.elektroda.pl/2558148800_... -BANDIT INFO BOX- 1. WSTĘP Opisywana konstrukcja to zestaw dodatkowych cyfrowych wskaźników które wykonałem do swojego motocykla (Suzuki Bandit 650S K5). Są to wskazania: aktualnego biegu, napięcia w instalacji oraz temperatur: oleju i powietrza (silnik tego motocykla jest chłodzony olejem...
https://obrazki.elektroda.pl/6483751800_... Witam, PROJEKT ostatecznie ukończony :D wersja ostateczna programów dla płytek MASTER Arduino Mega2560 i SLAVE ESP8266-12E Testowałem urządzenie przez kilka dni, w międzyczasie dokonałem kilku przeróbek, jak w kodzie tak i w połączeniach PIN itp. Usunięte zostały wykryte błędy, najważniejsze to...
Działać trzeba na liczbach całkowitych typu uint, które są podstawowym rodzajem zmiennych we wszystkich sterownikach. Pilnujemy żeby działania zawsze mieściły się na szesnastu bitach, czyli w zakresie 0-65535. 50 [min] * 100 [%] / 50 [%] = 50 [min] * 100 [%] / 30 [%] = 50 [min] * 100 [%] / 20 [%] = Pierwszą i trzecią wartość z równań można wyrzucić...
https://obrazki.elektroda.pl/3743484600_... Witajcie moi drodzy Przedstawię tutaj mojego shielda (nakładkę) na Arduino UNO opartego o układ ENC424j600. Shield ten pozwala podłączyć Arduino do internetu bez żadnego lutowania, a nawet bez użycia kabelków i płytek stykowych. W temacie dam jedenaście pełnych przykładów jego użycia z moimi...
Wybacz Kolego ale można się załamać - nie znasz podstaw programowania! Weź sobie jakąkolwiek książkę do C i przeczytaj chociaż KILKA PIERWSZYCH ROZDZIAŁÓW... Bardzo uprzejmie proszę. Forum nie jest od nauczania C, nawet na przykładach! Najprostszy program ma postać: #include <stdlib.h> #include <stdio.h> int main(void){ sleep(1);...
Inaczej. Mam działający kod pod pomiar wilgotności z ADC. oto on: [syntax=c] void ADC_set() { DDRA &= ~(1<<PA0); /* ustawienie portu A na wyjście */ ADCSRA = 0x87;/* włączenie ADC, fr/128 */ } int ADC_odczyt() { //ADMUX = 0x40; /* Vref: Avcc, ADC channel: 0 */ ADMUX = (1<<REFS0); //| (1<<MUX0); ADCSRA |= (1<<ADSC); /* start...
Witam, Jestem na etapie tworzenia kodu programu sterującego układem nadążnym typu solar track. Wykonałem już całą mechanikę systemu oraz fizyczną warstwę układu sterującego (obwód drukowany z wszystkimi elementami). Układ sterować ma mostkiem H (silnik DC) oraz podawać trzy sygnały sterujące do zewnętrznego sterownika silnika skokowego (CLK, DIR, EN)....
float konwersja konwersja float zmienna float
instrukcja falownika kondensatory 1000uf pralka amica wypuszcza wodę
sharp 32bi2ea wozek spawalniczy
Ford Fiesta 2007 1.3 benzyna na łańcuchu - silnik kolizyjny? JVC RC-EZ35S 17W - brak przestrajania, niedziałający FM Mode