Można wyświetlać temperaturę w podmenu "wybór_Ds" ale trzeba zmienić cały program. Chyba nie jest tak trudno zapisać sobie cztery ID czujników i wiedzieć później który gdzie przypisać. Najlepiej osobno podłączać każdy czujnik i na naklejce na kablu przy czujniki zapisać jego ID. Wiedząc gdzie jakie jest ID czujnika można już mu w podmenu przypisać odpowiednią...
Jak w kompilatorze AVR-GCC definije się zmienną albo stałą aby została ulokowana w pamięci EEPROM procka ?
Witam podaję kod, który działa poprawnie, oczywiście należy go dopasować do swoich potrzeb. [syntax=vbnet] 'Sterownik swiatel V2.2 '10-06-2015 'Roman Biadała $regfile = "m128def.dat" $crystal = 11059200 '$lib "fp_trig.lbx" '******** Ustawienia portów ****************************************... '******** Sterowanie 74HC541 - przekaźniki *************************************...
Witam, jako, że kończą się wakacje postanowiłem udoskonalić trochę soft piórnika - chcę dodać odczyt temp., tylko nie wiem gdzie ją umieścić. '***************************************... '* Program Piórnik Mini wersja 1.0 Beta *' '* Pomysł: FICU *' '* Programista: Jacek R (Black Jack) Kompilator:...
Nie bardzo rozumiem. na pierwszym miejscu mamy zadeklarować gdzie ma być zapisana czyli adres, a na drugim zmienna. Zacznij od pokazania nam definicji/deklaracji funkcji eeprom_write_float. Bez tego - to sobie tylko gdybamy.
W pliku "stdint.h" znajdziesz: typedef signed char int8_t; typedef unsigned char uint8_t; Jest to po prostu definicja typów ;) uint8_t to po prostu zmienna unsigned char nic więcej ;) A EEMEM to zmienna przechowywana w pamięci eeprom.
unsigned int *ple=(unsigned int*)&ulamek; wszystko jest ok, bo to mówi mniej więcej tyle, co "postaw wskaźnik na unsigned int na adresie zmiennej ulamek". Jeśli tylko zadeklarowałeś 'ple' nie definiując go, to musisz zmienić wskaźnik (czyli samo ple), a nie to co pod nim jest (czyli *ple), i ten wskaźnik postawić na adresie zmiennej ułamek (czyli &ulamek)....
Tak jak, to któryś z przedmówców powiedział należy odwoływać się do pamięci EEPROM. Zacząłbym od poczytania manual'a z avr-libc podajże są tam przykłady jak należy poprawnie wykorzystywać funkcje zapisu i odczytu do wewnętrznego EEPROM'u. Zdefiniuj sobie w programie: uint8_t eeprom_zmienna __attribute__( (section(".eeprom")...
W pgmspace są zawarte definicje chyba wszystkich funkcji (jako inline) więc raczej nie ma nic więcej. W eeprom funkcje są zadeklarowane jako extern, więc źródła funkcji będą w źródłach biblioteki (avr-libc), do pobrania z internetu. Nie ma ani wymagania, ani praktyki, aby jednemu plikowi .h odpowiadał jeden plik .c.
(at)paluszasty Właśnie sprawdzałem jak wygląda kwestia dostępu do FLASH i jest tak jak pisałem. Definiujesz stałą z const i automatycznie ląduje ona we FLASH, a z programu masz do niej dostęp bez żadnych specjalnych udziwnień. Czyli definicja: const char tmpchar1 Chyba że z jakiegoś powodu chcemy umieścić zmienne zadeklarowane jako const w RAMie, jak...
Oto plik ze zmiennymi z których chce korzystać w programie głównym: #ifndef H_ZMIENNE_EEPROM_H #define H_ZMIENNE_EEPROM_H uint8_t smieci1 __attribute__((section("... = 0; uint8_t temp_zadana __attribute__((section("... = 28; uint8_t temp_zalaczenia_pompy __attribute__((section("...
Witam, mam następujący problem - zapisuje informacje konfiguracyjne do eeprom, w tym m.in. chciałbym zapisać informacje o wybranym języku, który jest typem wyliczeniowym: w pliku nagłówkowym powiedzmy eeprom.h: error: invalid application of 'sizeof' to incomplete type 'enum language' W tym przypadku próbowałem to zrzucić w ten sposób (teoretycznia...
Tutaj masz wszystko... 'Program sterowania dwoma układami DS1820 dołączonymi 'do tej samej magistrali 1-Wire $regfile = "m8def.dat" 'informuje kompilator o pliku 'dyrektyw mikrokontrolera $crystal = 8000000 'informuje kompilator 'o częstotliwości oscylatora 'taktującego mikrokontroler Config Pinb.1 = Input 'linia PB1 jako wejściowa Config...
Witam! Mam problem z jednoczesnym użyciem Timera1 i funkcji RC5 która jak wiadomo dziął na Timerze0 (kod napisany na ATTINY2313) Jeśli rozdzielę kod na dwa czyli: 1. Wykorzystuje timer1 do sterowania serwem - wszystko działa (bez funkcji pilota na RC5) 2. Jeśli zaprogramuje attiny2313 aby używało tylko funkcji RC5 (pilota) i przy okazji korzystam z...
Witam! Buduje sterownik do kolektora słonecznego i próbuje rozwiązać problem znikających nastawień przy zaniku zasilania. Potrzebuje wpisać zmienną histerezy do pamięci EEPROM którą będzie można zmienić zależnie od potrzeb. Zaczynam od definicji: static EEMEM uint8_t histereza = 3; Odczyt/zapis za pomocą komend: uint8_t histereza = eeprom_read_byte(&histereza);...
Czy jest metoda, aby wyświetlić model mikroprocesora na jaki skompilowany jest program w AVR GCC, jakaś zmienna globalna czy odczyt rejestrów W środowisku AVR GCC nie ma bezpośredniej metody, która pozwalałaby na uruchomieniu programu na mikrokontrolerze, aby automatycznie wykryć i wyświetlić model mikroprocesora, na którym ten program jest uruchamiany....
Proszę bardzo[syntax=basic4gl] 'Copyright Robert Wołgajew, 2012 'Wersja z dnia 26.04.2012 $regfile = "Attiny2313.dat" $crystal = 1000000 'Fusebit CKDIV8 = 0 -> zaprogramowany (ustawienie domyślne producenta) $hwstack = 32 $swstack = 32 $framesize = 32 'Konfiguracja wyświetlacza LCD Config Lcd = 16 * 1 Config Lcdpin = Pin , Db4 = Portb.5 , Db5 = Portb.2...
Już dość dawno temu powstał kod na Atmegę8, dla migania LED. Kod troszkę toporny, jak to zazwyczaj początkujący pisze. Generalnie działa. Ostatnio dodałem jakąś nową opcję. Wprawdzie światełka działają jak trzeba, lecz chciałbym troszkę poprawić kod w fragmencie współpracy z eepromem. Mam z tym problem gdyż poszedłem w kierunku większych prądów i samemu...
Co to dokładnie oznacza? Nie wchodzi do przerwania, nie wychodzi? Masz sprzętowy debuger? (na jakim środowisku procujesz i jaki programator) I może dodaj sobie diodę do debugowania. Albo wykorzystaj LCD do debugowania. Aby dowiedzieć się do którego momentu program dochodzi. Np,wyświetla się napis HOT ON? A tak swoją drogą to co to ma być? while(!(SPR_GORA)...
Przepisujesz z ksiazki? :cunning: Popatrz dobrze czy np. jest tam cos takiego: $regfile = M8def.dat Tutaj masz poprawny kod: 'Program sterowania dwoma układami DS1820 dołączonymi 'do tej samej magistrali 1-Wire $regfile = "m8def.dat" 'informuje kompilator o pliku 'dyrektyw mikrokontrolera $crystal = 8000000 'informuje kompilator 'o częstotliwości...
Witam Mam problem z uruchomieniem wyświetlacza wyświetlacz LCD 128x64-A/G z L przeszukiwałem internet cały wieczór i nic nie znalazłem ,nie wiem jak podłączyć wyjścia Vo i Vee . http://obrazki.elektroda.pl/7984534400_1... http://obrazki.elektroda.pl/3940978000_1... Wyświetlacz podłaczam do płytki AVT5311.Próbuje go takim...
Ok tutaj masz kody zrodlowe z ksiazki "Programowanie mikrokontrolerow AVR w BASCOM". Proponowalbym na tym etapie zakonczyc temat! 'Program obsługi jednego układu DS1820 dołączonego 'do magistrali 1-Wire $regfile = "m8def.dat" 'informuje kompilator o pliku 'dyrektyw mikrokontrolera $crystal = 8000000 'informuje kompilator 'o częstotliwości...
Czesc mam taki kod ale nie działa czy wiecie co jest zle [syntax=c] #ifndef LCD_H_ #define LCD_H_ //Załączenie plików bibliotecznych #include<avr/io.h> #include<util/delay.h> #include<avr/pgmspace.h> #include<avr/eeprom.h> //1-Pin RW sterowany z mikrokontrolera //0-Pin RW zwarty do GND #define RW_M 1 //Definicje preprocesora...
Ficu to musi być na początku. $regfile = "at15def.dat" ' Definicja rejestrów procesora Tiny 15 $crystal = 1600000 ' FCPU $tiny ' Informuje kompilator że ma do czynienia z procesorami ATTiny pozbawionymi RAM, i nakazuje mu nie używać programowego wskaźnika stosu i RAMu. $noramclear ' Było w helpie, nie wgłębiałem się dlaczego? 'Tak deklaruje...
http://obrazki.elektroda.pl/9589280700_1... HPS 2014 Hybrydowy laboratoryjny zasilacz sieciowy. Parametry użytkowe zasilacza w skrócie: 1. Wykorzystanie tanich i łatwo dostępnych elementów. 2. Wydajność prądowa min 3A (dla niskich napięć może dochodzić do 5A). 3. Rozdzielczość DAC 12bit. (filtrowany PWM 4.9kHz) 4. Rozdzielczość ADC...
No czytam już 3 dzień. Tylko że problem zaczyna się w przypadku PROGMEM i EEPROM. Nie ma tego opisanego w standardach C bo to rzecz swoista dla AVR. Tutaj zaczynają się problem z podwójnym dołączaniem. extern to informacja że zmienna będzie zadeklarowana potem, natomiast ja takiej informacji nie chcę przekazać kompilatorowi (może to i trick który działa...
Kompilator owszem i u mnie błędów kompilacji nie sygnalizuje. Ale program strasznie jest "ociężały" powolny i zawiesza się po jakimś czasie pracy - czego nie zaobserwowałem w moich poprzednich wersjach. Mnie razi używanie delay(). O ile przebolałbym to w samym setupie to w pętli głównej jest nie do przyjęcia. No ale czat uczył się na kodach z netu....
Witam, Zmontowałem kiedyś sygnalizator jak w temacie. Działa dobrze, sygnalizuje przekroczenie górnej temperatury nastawionej, sygnalizuje spadek temperatury poniżej 0 stopni. Przydała by mi się jeszcze funkcja sygnalizacji przekroczenia dolnej nastawionej temperatury. Może ktoś podpowie co zmienić w kodzie ? KOD: [syntax=c]/*****************************...
Witam, mam następujący problem z poniższym programem. Prosiłbym bardziej obeznanych kolegów o sprawdzenie, układ powinien działać tak: ustawiam temperaturę plus regulacja histerezy, gdy temperatura jest niższa układ załącza przekaźnik do czasu wyrównania temperatury, problem polega na tym że program załącza przekaźnik (grzanie) tylko na moment po czym...
Witam, mam program (attiny2313) do obsługi termometru DS18b20 i wyświetlacza, układ posiada 3 przyciski +/M/-. Program reaguje na zwieranie przycisków do masy, a chciałbym zrobić tak by procesor reagował na przerywanie masy. Znajdzie się ktoś kto mógłby rzucić okiem na program i podpowiedzieć co trzeba zmienić?? [syntax=vbnet] $regfile = "Attiny2313.dat"...
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ł...
Okej, ogólnie to działa, wielkie dzięki za tamto. Mam jednak dalszy problem troszkę. Ogólnie chcę osiągnąć coś takiego, że wysyłam najpierw z Matlaba liczbę - jakąś flagę, po której uC wejdzie do odpowiedniej pętli. Po wejściu do tej pętli dopiero w niej ma odbierać wysłaną z Matlaba wartość. Czyli np. najpierw wysyłam liczbę równą 2 z Matlaba do uC....
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>...
Jesteśmy świadkami, jak cała konstrukcja jest generowana przez AI. Nie tylko kod programistyczny, ale również sposób łączenia elementów. Na razie modele radzą sobie z popularnymi elementami, pewnie kwestia czasu, jak zostaną przetrenowane na datasheetsach elementów elektronicznych. . No właśnie AI kiepsko radzi sobie z Datasheet. Nie za bardzo radzą...
Witam! Mam następujący problem do rozwiązania... Stworzyłem strukturę napisaną w C, która jest szablonem menu wielopoziomowego pewnego programu. Początkowo projektowana była jako klasa w C++ na PCcie, teraz przenoszę ją jako strukturę do C pod AVR. Klasa była prosta, taka żeby łatwo na C przerobić. Problem polega na tym, że składniki struktury menu...
Bardzo was proszę, pomóżcie mi, ja już wysiadam męcze się chyba 4 godzinę z tym prostym programem i nic... pomyły mi się już skończyły... Miało być tak: - wywołanie przerwania przyciskiem - odczytanie znaku z pamięci (procedura reading) - zamiana na znak graficzny z tablicy (procedura szukaj) A jest tak: - wywołuję przerwanie - następuje wyświetlenie...
Witam Mam układ, który mierzy dwie temperatury ( DS18B20 ), dwa napięcia ( PCF8591 ( pobiera czas ( PCF8563 ), a z powodu niedużego wyświetlacza ( 12 x 4 ) wskazania są zmieniane do 10 sekund po przepełnieniu Timer1. Układy PCF8563 i PCF8591 są podpięte z "zewnątrz" przewodami około 10 cm. Magistrala I2C ma obniżoną prędkość przez Config I2cdelay =...
Zbudowałem układ, który mierzy temp. z trzech ds18b20 i wyświetla na lcd. Problem zaczyna się gdy włączę przerwania od timera0 (który tylko w tle odmierza sobie odcinki czasu po 8ms), a mianowicie mierzona temperatura jest nie prawidłowa a później zaczyna się krzaczyć lcd. Ma to być sterownik pieca CO więc potrzebuję odliczać krótkie odcinki czasu na...
Witam, Napisałem program obslugi korzystająć z dokumentacji czujnika oraz kursu dla Arduino (dostosowałem go do `51). Problem polega na tym, ze żadna z danych kalibracyjnych odczytana z EEPROMU nie może mieć wartości 0x00 lub 0xff, moje wyniki są następujące: BMP085 inicialization OK! msb=1d lsb=cc ac1=7628 msb=fc lsb=a4 ac2=-860 msb=c7 lsb=ff ac3=-14337...
Jeśli chodzi o soft, to powstał szkielet programu. Na razie odmierza to czas, i powinno obsługiwać pilot RC5. W polach „A:” – powinien wyświetlić się adres pilota, „C:” – numer przycisku z pilota. W symulacji programowej poszło, ale na razie nie mogę przeprowadzić prób z braku modelu. Ale żeby stworzyć wersje BETA...
Da się na 1000% ponieważ przed tym miałem tzw "piórnik ściągę" i pokazywało temperaturę i czas w 2 linijkach jakby jako jedna. Tylko właśnie nie wiem jak to dokładnie napisać ponieważ nie mogę ogarnąć tego w kodzie z tego "piórnika" Teraz chcę żeby tak pokazywało tylko temperaturę. Ogólnie ten "piórnik ściągę" rozpatroszyłem na części pierwsze żeby...
Masz podawane złe długości pól. Skoro odwołujesz się np. do pola okrążenia typu DANE_ZAWODNIKA to nie możesz robić sizeof(DANE_ZAWODNIKA) bo to nadpisze ci kolejne pola, powinno być sizeof ale pola okrążenia. Takich błędów masz więcej. Definicja: DANE_ZAWODNIKA numer_zawodnika_tab[sizeof(DANE_ZAWODNIK... też na oko jest bez sensu. Bo robisz tablicę...
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);...
Witam Staram się złożyć bibliotekę do obsługi lcd ze sterownikiem pcd8544 i napotkałem pewien problem. Kompilator generuje taki błąd [syntax=dot]15:19:27 **** Build of configuration Release for project m8 **** make all Building file: ../LCD/PCD8544.c Invoking: AVR Compiler avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields...
Najlepiej stosowac taki rodzaj typu zmiennej jaki jest w definicji eeprom_write_byte ((uint8_t *)(addr), (uint8_t)(val)) to napewno bedzie dzialalo.
Nie zadziała z kilku powodów. Po pierwsze zapis do zmiennej w pamięci EEPROM na AVR wymaga posłużenia się którąś z funkcji z eeprom.h - póki co, w bieżącej wersji kompilatora named address spaces nie są zaimplementowane. Kolejna sprawa to ta flaga w przerwaniu - co to za dziwactwo? I kolejna - na PC byte jak jest zdefiniowane? Pamiętaj, że w zależności...
Rozumię, że chodzi o zapis do pamięci EEPROM a potem odczyt z pamięci. Aby dokonać zapisu do EEPROM-u należy: Dim x as long 'definicja zmiennej "x" typu Long x = .... 'wpisać wielkość tej zmiennej writeeeprom x , 1 'zapisanie zmiennej "x" do komórki "1" EEPROM-u Aby odczytać z EEPROM-u: readeeprom x , 1 'odczyt zmiennej "x" z komórki "1" EEPROM-u Uwaga:...
Witam Pierwsze co mi wpadło w oko, wywal z funkcji sprawdzanie stanu przycisków. Po to właśnie masz debounce . Druga sprawa, zrob sobie zminne które tylko będą czytane z pamięci eeprom przy starcie programu , poczytaj helpa a załapiesz o jaką definicję zmiennch chodzi. Następnie pracujesz sobie na innch zmiennych, gdy zajdzie potrzeba zapisania czegos...
Do tej pory omówiliśmy znaczenie ostrożnej obsługi przerwań, metody solidnej strukturyzacji ISR oraz uwagi wymagane do zmiennych globalnych i lokalnych ( Uważaj na przepełnienia bufora danych Generalnie używamy programowych buforów do interfejsów komunikacyjnych. Na przykład, mikrokontroler może zapewnić podrzędny interfejs komunikacji szeregowej I²C...
Masz jakieś kompleksy co do rozmiaru? Jesteś pewien, że już więcej nie dałby się gdzieś wcisnąć operatora sizeof. Napisz to jeszcze raz bez używania tego operatora w definicjach tablic. Może wtedy ktoś zrozumie jaki masz cel.
witam, zgodnie z definicją, instrukcja writeeeprom służy do zapisu do pamięci eeprom. Chciałbym, aby można było w zmiennej przechowywać adres komórki, która będziemy chcieli nadpisać, bo potrzebuję taką automatyzację do kasowania komórek pamięci od P1 do P8, (takie są ich nazwy). Proszę o pomoc.
definicja zmienna bascom definicja zmienna definicja zmiennej eeprom
cykająca przetwornica autoryzowany serwis samsung pralki bramka pomiaru temperatury
schemat elektryczny prasy mimośrodowej schemat elektryczny prasy mimośrodowej
Niedomykająca się kieszeń magnetofonowa w wieży Samsung - przyczyny i rozwiązania Dlaczego telegazeta nie działa na Android TV?