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.
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")...
(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...
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)....
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.
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ą...
loocasm --> nie chodzi o to żeby wszystkie zmienne, których używa się w przerwaniu od razu deklarować jako volatile ale tylko te, które są jednocześnie używane zarówno w przerwaniu jak i w pozostałej części programu w różnych funkcjach. (nie do końca rozumiesz może jeszcze volatile) W tym konkretnym przypadku gdy zmienna overflow_tmp jest używana tylko...
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....
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...
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...
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...
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...
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...
Czyli przy tym 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 Config Pinc.5 = Output 'linia PB1 jako wejściowa...
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...
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);...
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...
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...
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 Jako ze to moj pierwszy post chcialbym z gory napisac ze jestem laikiem jesli chodzi o uC. Bawie sie tym od 2 tygodni, probowalem programowac w C ale niestety za wysokie progi. 2 dni temu zabralem sie za bascoma i wymodzilem programik do sterowania solarami, na dwoch czujkach ds1820. Mam prosbe do Was, czy jest cos w kodzie co mozna poprawic (zapewne...
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, 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, 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...
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 =...
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:...
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...
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)...
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...
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 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...
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...
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, 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....
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...
Oto i źródło, może Wy zauważycie coś dziwnego... [syntax=c] // PINY WEJŚCIOWE #define ZIELONA PIND5 #define CZERWONA PIND6 #define DEBUG_PORT PORTD #define DEBUG_DDR DDRD #define ZOLTA PIND3 #define KL_PORT PORTC #define KL_PIN PINC #define KL_DDR DDRC #define LEWO PINC0 #define DOL PINC1 #define PRAWO PINC2 #define GORA PINC3 #define LEWY PINC4 #define...
Witam Porwałem się na robienie własnego sterownika co i stanąłem w martwym punkcie. Mianowicie sterownik składa się z 2 płytek na których są Atmegi 16 taktowane zewnętrznym kwarcem 11.059200 + kwarc zegarkowy jeden układ odpowiedzialny za odczyt temperatur regulację fazową wentylatora oraz sterowanie elektrozaworami a drugi obsługa wyświetlacza graficznego...
Witajcie Znalazłem program taki jak poniżej. Chciałbym go przerobić w taki sposób aby móc go zastosować na SL45i i przy wykorzystaniu Atmega128. Kochani powiedzcie laikowi jak.... Wymienione biblioteki posiadam: siemens35.h, eeprom8252.h Mam także pytania: 1. Dodam, że nieinteresuje mnie wykorzystywanie jako alarmu zatem co usunąć? 2. Oraz w jaki sposób...
definicja zmienna bascom definicja zmienna zapis zmienna eeprom
volvo silnika oświetlenie przez bluetooth pasek rozrząd citroen
Wzór pisma o niedotrzymanie warunków umowy przez TAURON Nie działa wyświetlacz w Korg PA60 - diagnostyka i naprawa