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ą...
Ale co to ma do rzeczy - w związku z tym co napisałem ? Tyle ma do rzeczy, że nie powinno się tylko i wyłącznie ślepo patrzeć w standard C, ale dobrze jest zdroworozsądkowo pomyśleć o pułapkach czyhających w niektórych komponentach i zabezpieczyć się przed nimi, żeby potem nie szukać "dziury w całym". W końcu od tego to forum jest. Nawet jeśli w sprzęcie...
Witam, topic co prawda stary, ale mam pytanie odnośnie deklaracji tablicy w EEPROM. Czy jeśli bym zadeklarował tablicę tak jak kolega juntom, to mógł bym używać jej jako zmiennej nieulotnej? Chodzi mi o to, że buduję predyktor na płytce, jest faza nauki algorytmu, gdzie zbierane są dane i klasyfikowane i istnieć będzie (jeszcze jej nie ma :) ), faza...
Witam. Mam problem z zapisaniem i odczytem z eepromu. Po pierwsze plik z epromu zapisuje się osobno z rozszerzeniem eep czy w kodzie programu ?? Po drugie chciałbym aby ktoś sprawdził mój kod wszystko działa, zapisuje największą temperaturę ale chyba jednak w flash'u bo jak odłączam zasilanie i załączam to ta temperatura zostaje skasowana :( bardzo...
Jak w kompilatorze AVR-GCC definije się zmienną albo stałą aby została ulokowana w pamięci EEPROM procka ?
Witam serdecznie! Chciałbym się dowiedzieć czy istnieje jakaś możliwość odgórnego zdefiniowania zmiennej typu float/double w pamięci EEPROM przy jednoczesnym nadaniu jej wartości. Do tej pory robiłem to w ten sposób, ze tworzyłem zmienną w eepromie i za pomocą te funkcji: void eeprom_write_block(const void *src, void*dst, size_t n) zapisywałem...
Witam Wpisuje sobie do eeprom wewnętrznego dane: $eeprom Data 140 , 134 , 136 , 198 , 134 , 255 , 142 , 163 , 175 , 255 , 136 , 199 Nie do końca rozumiem gdzie to polecenie pakuje pierwszą daną? Czy 140 będzie w adresie 0 czy 1? Gdzie będzie zapisana długość(ilość) danych? Pozdrawiam Pawli
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 *************************************...
Podpowiedzcie mi prosze, jak zadeklarowac zmienna w pamięci eeprom po adresem 0x01?? bo: #define EEMEM __attribute__((section(".eeprom"))) EEMEM unsigned char ZMIENNA; lokuje ja w pierwszej wolnej komorce czyli 0x00. Moge zadeklarowac wczesniej inna zmienna PUSTĄ tak aby kompilator ulokowal ja pod 0x00 ale nie jest to elegancke. W '51 robilo sie to...
Witam! Pytanie dotyczy zapisu do EEPROM'u pojedynczych bajtów. W datasheet'cie do ATmega32, w rozdziale 7.4.1 "EEPROM data memory" napisano: The ATmega32A contains 1024 bytes of data EEPROM memory. It is organized as a separate data space, in which single bytes can be read and written. The EEPROM has an endurance of at least 100,000 write/erase cycles....
Nie, enum jako typ deklarujesz w nagłówku. Natomiast zmienną o typie enum możesz zrobić jako extern w nagłówku, a jej definicję umieścić w pliku źródłowym, tak jak masz. Dzięki temu kompilator ma informację o kompletnym typie z nagłówka, i nic się nie dubluje.
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.
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ę...
Najlepiej stosowac taki rodzaj typu zmiennej jaki jest w definicji eeprom_write_byte ((uint8_t *)(addr), (uint8_t)(val)) to napewno bedzie dzialalo.
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...
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:...
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)....
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.
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...
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")...
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.
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("...
Oczywiście programuje w BASCOM. A kod to zegar dcf z wodotryskami. To jak to ma być w Bascomie i jeszcze z wodotryskami to ty od razu zamień swój procek ATTINY (a nie attina) na jakiś typu ATmega. Bo inaczej z tych wodotrysków wyjdą ci tylko -tryski. Będziesz miał więcej każdego rodzaju pamięci na swoje extrasy a przede wszystkim na podstawowy kod...
Witam. Mam program do wyświetlania napisu na wyświetlaczu hd44780 jak go wgram to na wyświetlaczy nic się nie wyświetla nawet kratek nie ma. Co mam zrobić żeby wyświetlić napis. Programuję w eclipse. [syntax=c]/* * main.c * * Created on: 2010-03-31 * Autor: Mirosław Kardaś */ #include <avr/io.h> #include <avr/pgmspace.h> #include <avr/eeprom.h>...
Witam, Chciałbym podyskutować i wymienić doświadczenia na temat sposobu zarządzania i przechowywania parametrów sterownika mikroprocesorowego programowanych przez użytkownika. Ogólne założenia: - parametry przechowywane w EEPROM - program sterownika w "C" - parametry różnych typów bool, uint8, int8, uint16 ... - zmienne inicjowane przez odczytane parametry...
w zasadzie to przerwanie nie jest mi potrzebne. Ale uzylem go tylko po to zeby zapisac jakas wartosc do epromu i odczytac ja po ponownym wlaczeniu zasilania. Teraz zmienilem Avr studio na nowsza wersje i wychodzi na to ze przy starcie wywoluje mi sie przerwanie. Skrocilem do min program do testow i wyglada to nastepujaco: #include <avr/io.h> #include...
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...
(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...
Witam, działać działa, ale wyskakują warningi. pozatym po przeniesieniu do większego programu dzieją się cuda, wiec ta metoda nie jest dobra. No to rzeczywiście działa - ale tylko przy odpowiedniej definicji "działania" ;) Widzę dwie możliwości: 1) kopiować napis z EEPROMu do ramu (przy zapisie do eepromu i przy resecie układu), później porównywać dwa...
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...
no widzisz kolego autorze - trochę ciężko ci to narazie zrozumieć bo do tej pory nie trzymałeś się pewnych zasad. Hmmm tak z grubsza to u ciebie obsługa przerwania niczym się nie różni od programu głównego nawet więcej przeplata się z nim co powoduje takie błędziorki. musisz uznać pewne zasady do których należą następujące kroki: 1. definicja procka...
ginar --> możesz zrobić jak chcesz (jeśli chodzi o pominięcie iluś tam początkowych bajtów), w tym przypadku także spokojnie, tak jak pisałem wyżej i to zadziała pod warunkiem, że na wszelki wypadek po kompilacji sprawdzisz sobie w pliku *.map w jakim porządku umieścił ci linker te struktury. I wcale nie trzeba się obawiać tego że ci "COŚ" tam namiesza...
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! 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);...
Witam Serdecznie, W pracy otrzymałem za zadanie napisanie programu na mikrokontroler AT89C51AC2. Program ma za zadanie niektóre swoje zmienne (w tym nazwę programu) trzymać w pamięci EEPROM. Funkcję obsługi pamięci zaczerpnąłem z książki Majewski-Kardach "Programowanie mikrokontrolerów serii 8X51 w języku C". Problem pojawia się przy zapisie nazwy programu...
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...
Dziękuje za uwagi. Nie zajmuje się natywnie programowanie w BASCOMie (pierwsze spotkanie). A poprawki jakie zaproponował były wykonane na potrzeby uruchomienia układu. Kod po moich poprawka i uwzględniających część uwag ZUMEK-a (chodzi o typ zmiennej z Word na Integer) Funkcje dodane do regulatora; 1. obsługa czujników temperatury serwii DS nie ważne...
Trudno uczyć kogoś kto się uczyć nie chce i twierdzi, że on wszystko umie i robi jak robi, a kompilator jest zły, bo śmie mieć inne zdanie. C to C i na mikrokontrolerze jest dokładnie takie samo jak na PC. Skoro nie potrafisz rozwiązać problemu korzystając ze źródeł internetowych, to najwyraźniej jednak ma sens kupować książki, bo w każdej znanej mi...
https://obrazki.elektroda.pl/1624878200_... W naszych domach wykorzystuje się coraz więcej urządzeń połączonych z Internetem, głównie elementów zaliczanych do Internetu Rzeczy. Te elementy automatyki domowej czynią nasze mieszkania coraz wygodniejszymi, ale też coraz bardziej zależnymi od sieci - gdy jej zabraknie, cała ta inteligentna...
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...
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...
http://obrazki.elektroda.pl/7011174400_1... Cześć ! Dziś chciałbym zaprezentować swój najnowszy projekt, którym jest świąteczna choinka LED. Jako, że według świątecznego zwyczaju swoich bliskich obdarowujemy prezentami ów ozdoba została wykonana dla moje dziewczyny, która bardzo lubi klimat świąt i wszystkie ozdoby z nimi związane....
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...
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...
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...
Autor pytał dlaczego nie kompilator nie widzi zmiennej a on jest jako parametr funkcji. Nie pytal o róznicę między deklaracją a definicją :). Piotrus_999 nie denerwuj się bo nie masz racji ;) Co do Twojego przykładowego kodu - niestety nie załapałem idei. Tak czy siak, to: Napisałeś że: Nazwy parametrow Do niczego ;) Deklaracja funkcji nie musi w ogóle...
Szukam od kilku tygodni jakiejś ciekawej książki o programowaniu mikroprocesorów AVR w języku C w okolicznych bibliotekach i księgarniach oraz w internecie. Jednak znajduję wszystko albo na assemblera albo na bascoma. Assembler jest dla mnie zbyt żmudny natomiast bascom niesatysfakcjonujący dlatego wybór padł na C. Niestety niewiele istnieje polskich...
Zamiana SET na RESET wyjść przekaźników nic nie zmieniła, następnie dodatkowo zamieniłem w dalszej części programu Reset na Set, i też nic nie wyszło . Program po zmianach [syntax=vbnet] $regfile = "attiny2313.dat" 'definicja AVRka $crystal = 1000000 '1 Mhz (domyslnie) Config Rc5 = Pinb.0 ,Wait = 2000 'RC5 Config Pind.6 = Input 'power switch Config...
Oba programy które zaproponowałeś nie będą działały poprawnie. Spróbuj napisać poprawny kod spełniajacy moje założenia z pierwszego postu. Przepraszam za wszelkie niejasności w mojej poprzedniej odpowiedzi. W takim razie, przedstawiam poniżej poprawiony kod spełniający założenia z pierwszego postu. Zakładam, że używasz modułu zegara RTC DS1307, wyświetlacza...
Program napisany w BASCOM AVR i wyskakujące 3 błędy , mogę wiedzieć dlaczego one wyskakują podczas kompilacji , poniżej zamieszczam kodzik. 'podwójny woltomierz i amperomierz (dwa kanały pomiaru napięcia i dwa kanały pomiaru prądu 'UWAGA _ PONOWNE WGRANIE PROGRAMU SKASUJE WARTOŚCI WSP KOREKCJI Z PAMIECI EPROM '---------------------------------------...
No ale w czym problem? Kto każe kasować CAŁĄ pamięć? Również używam symulowanego eepromu i nie widzę problemu w aktualizacji firmware bez ruszania konfiguracji. Ja widzę. Przy dużych rozmiarach sektora (jednostki kasowania), np. 4kB, zapisywanie często zmiennych wartości do flasha jest nadużyciem. I nie gadajcie rzeczy typu "konfiguracja sie nie zmienia...
http://obrazki.elektroda.pl/7995180000_1... Witam! Jakiś czas temu rozpocząłem naukę pisania programów na mikrokontrolery AVR w języku C++. Przeczytałem wiele tutoriali, poradników, itp., aż w końcu doszedłem do pisania własnych, prostych programów. Po kilku takich „pseudoprogramach” zdecydowałem, że teraz czas napisać coś...
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>...
Kod programu jest wzięty, z katalogu przyklad/uart dołączonego razem z bibliotekami. Oto jego kod /*--------------------------------------... */ /*Demo biblioteki UART */ /*Autor: Robert Krysztof */ /* WWW:http://www.8051.prv.pl */ /*E-mail: robert.krysztof(at)wp.pl */ /*--------------------------------------...
[syntax=c]#include <avr/io.h> #include <avr/pgmspace.h> #include <avr/eeprom.h> #include <util/delay.h> #include <avr/interrupt.h> #include <string.h> #include <stdlib.h> #include "LCD/lcd.h" //dyrektywy dla preprocesora //dioda #define LED_PIN (1<<PC7) //do którego pinu podłączona dioda #define BUZZ_PIN...
definicja zmienna eeprom rzutowanie zmiennej zwiększanie zmiennej
windows update naprawa schemat instalacja elektryczny scania pompa miele
Audi Q7 błąd oświetlenia bagażnika – zwarcie z masą, diagnostyka, naprawa, VCDS, BCM Peugeot 406 1.9 TD 1999 – schemat bezpieczników, lokalizacja, opis skrzynek BF00, BF01, BMF1