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ą...
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")...
(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...
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.
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...
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...
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....
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);...
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)...
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...
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...
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...
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...
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...
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....
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...
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>...
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:...
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...
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...
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.
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...
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...
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...
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...
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...
Dzięki ale dalej nic to niedało. Tak wygląda program po zmianach rozumiem ,że licznik zlicza od wartości z TCNT1 do 65535 więc poodejmowałem za jedną z rad, wartość TCNT1 od wyników ale dalej klapa wyświetla mi jakieś liczby w zmiennej " o " przekraczające czasem grubo ponad 10 000 a z mojch obliczeń 65535-34286 wynika że max to 29714 prosze mnie poprawić...
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, 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...
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...
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>...
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...
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 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...
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....
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...
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...
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...
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...
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...
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 '---------------------------------------...
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...
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...
witam! Musze dosc precyzyjnie odmierzac czas (1ms) dysponuje ATmega 32 z zewnetrznym kwarcem 8Mhz... ustawilem sobie preskaler timmera na 8 ( czyli stuka sobie z f= 1Mhz) teoretycznie powinno byc dobrze... ale w praktyce pomiar spoznia mi sie o 3sec. na minute ( ???!!!) juz nie wiem co robie nie tak... jesli ktos moze spojrzec bylbym wdzieczny... #include...
[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...
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ś...
Witam. Nie mam już pomysłu na rozwiązanie mojego problemu. Program działa, ale przy przesuwaniu tekstu w tablicy do prawej AVR GCC generuje dużo mniejszy kod (1002 bajty) niż jeśli zakomentuję tę część pętli głównej programu (1366 bajtów). Kompilacja przechodzi bez warningów w obu wypadkach. Dodatkowo po zaprogramowaniu układu program nie wraca do głównej...
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 */ /*--------------------------------------...
Witam panowie. Zagadka jest taka. Jest sobie arduino uno, ale programuję je bez bootloadera, bezpośrednio w c w avr studio wersja 4. W pewnym momencie w programie startuję timer 2 w trybie CTC i używam go jako wyjście zegarowe dla bufora. Timer 2 ma ustwienia prescalera na 1 i rejestru porównawczego na 7, co daje ze wzoru przy częstotliwości uC 16Mhz,...
No to coś napisałem na AVRStudio 4.05.0.181 (na kolanie) :) . Co prawda na ATmega8 , ale przeportowanie to pestka(niektóre wektory przerwań do skasowania/zmiany nazwy i "2313def.inc" zamiast "m8def.inc" , prędkość kwarcu Xtal też do poprawki...), raczej tu chyba nie ma rozkazów niezaimplementowanych w AT90S2313 . ;included in next file - line ".device...
http://obrazki.elektroda.pl/3362303300_1... Ciekawość to motor rozwoju :-) Po prostu chciałem usłyszeć jak brzmią i sprawdzić jaką rzeczywiście mają moc końcówki mocy oferowane w pewnym międzynarodowym portalu aukcyjnym na literę E. Chodzi o końcówki mocy nazywane "3xtda7293 255W" . W związku z tym rozebrałem jeden z wielu wzmacniaczy,...
Witam, Uczę się bascoma, i stworzyłem sobie programik z zegarkiem i termometrem, lecz na LCD temperatura miga mi na przemian z godziną oto kod: [syntax=basic4gl] 'definicja użytego procesora $regfile "m32def.dat" 'prędkość taktowania 16MHz $crystal = 16000000 $eeprom 'piny podłączenia LCD i definicja jaki LCD | 16x2 Config Lcdpin = Pin , Rs = Portb.0...
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...
Dziękuję za uwagi, zaraz to posprawdzam i poprawie. Co do punku 5 to przekaźniki aktualnie nie pracują, lecz wcześniej je sprawdzałem i nie powodowały problemów. ----------------------------------------... Poprawiony kod: 6. Na 2 bajtowych zmiennych, wykorzystywanych w przerwaniach, wypadałoby operować (poza przerwaniami) atomowo. Dobrze rozumiem,...
Witam, Możecie spojrzeć na ten kod (poniżej?) Problem jest taki że co bym nie robił zdarza się w niektórych wsadach że jakaś strona pamięci zostaje zapisana samymi 0xFF. (wgrywam wsad potem sprawdzam programatorem poprawność). Procesor Atmega32; 4mhz (RC); UART 9600 ////////////////////////////////////////... /*...
Witam Borykam się z problemem komunikacji kilku procków po sieci RS485 (wykorzystałem układ SN75176. Wszystko jest ok, aż do czasu kiedy dwa procki ze chcą gadać. Wtedy kolejność ramki mi się rozsypuje. Ramkę mam stworzona w taki sposób: 1 bajt - adres, 1 bajt - dane/rozkaz, 1 bajt suma kontrolna wyliczana z dodania poprzednich dwóch bajtów. Myślałem...
Witam Mama "swoją" płytkę z Atmega8 ( kwarc 4MHz, EEPROM, MAX485 ), która jest połączona z drugą na której jest wyświetlacz oraz klawiatura 5 przycisków na PCF8574. Wszystkie sygnały - do LCD, GND i VCC oraz I2C idą jedną taśmą łączącą płytki. Jednak nie byłem przewidujący i zapomniałem o pinie INT układu PCF8574, dolutowałem do wyprowadzenia układu...
Witam, chciałbym przerobić projekt z tego linku http://www.elektroda.pl/rtvforum/topic90... Mianowicie zostawić odliczanie czasu i wyświetlanie go a dodać do niego funkcję w której o wpisanej "na stałe" godzinie w funkcji załączy przekaźnik. Przekaźnik jest 4 modułowy więc potrzebuje 4 wolnych pinów. Kod, który zmodyfikowałem wygląda następująco...
Nie pisze że w tej formie która jest nie działa. Wręcz przeciwnie działa od 6 miechów bez zwiech. Ale teraz chcemy dołożyć PWM do tego co mamy i tu jest problem. To część programu. Ważne elementy algorytmów są wycięte, bo nie maja znaczenia dla poruszanego problemu. Jeśli jest możliwość dołożenia PWM z timera1 to proszę o pomoc. Proszę niezwracać uwagi...
http://obrazki.elektroda.pl/4301568800_1... Autor poniższej konstrukcji przedstawiał już podobny układ - miniaturowy zegarek oparty o ATtiny ( Krok 1: Przygotowania http://obrazki.elektroda.pl/4194769400_1... Mikrokontroler Układ oparty jest o mikrokontrolery AVR firmy Atmel ATtiny85. Autor wykorzystał element w obudowie...
Witam , mam nadzieję iż nie zanudziłem bez reszty.. W zestawieniu z moimi "dokonaniami asm." kolega michalko12, jest najbliższy temu co ja kiedyś robiłem . Oto wersja asm z przełącznikiem kompilacji aby kompilować jako samodzielny plik - kto chce ->ten może :D ( ta wersja to 16-timerów, 16-nasto bitowych, każdy cztery tryby konfiguracji, oczywiście...
http://obrazki.elektroda.pl/6191134300_1... Niedawno [url=http://www.elektroda.pl/rtvforum/to... płytkę Linduino - moduł stworzony przez Linear Technology do prac deweloperskich z ich układami scalonymi, który zachowuje kompatybilność z Arduino Uno. Oznacza to, że programy tworzone na Linduino mogą być uruchamiane...
Witam Na wstępie przyznaję sie do laizmu, proszę o wyrozumiałość. Mam problem z przerobieniem programu obsługującego 1 czujnik i jedną grzałkę, na wersję z odczytem z czterech czujników sterujących pracą czterech grzałek, każdy czujnik ma swoją grzałkę. [syntax=cpp]//==========================... // Termoregulator ogrzewania podłogowego...
https://obrazki.elektroda.pl/9151185000_... Druga część artykułu o najtańszych nowych mikrokontrolerach z roku 2017. Ekosystem developerski Środowisko developerskie mikrokontrolera ma ogromny wpływ na jakość pracy z nim i w konsekwencji - na produktywność. Na to składają się różne czynniki – jakość IDE, dostępne biblioteki, płytki...
Witam, Było dużo postów na temat wyboru języków, mikrokontrolerów. Ale nie znalazłem informacji o praktykach dobrego programowania, które są niezależne od języka czy mikrokontrolera. Ważnym elementem jest przyjęcie sobie jakiegoś standaru, np.: http://www.shift-right.com/openrepo/codi... i tworzenie konsekwentnie oprogramowania zgodnie z...
Opis jak zapisywać i odczytywać zmienne typu long do pamięci FRAM/EEPROM 24C04 //Adres zapisu i odczytu Const Addressw = &B10100000 Const Addressr = &B10100001 //Inicjujemy I2C Config I2cdelay = 10 Config Scl = Portc.0 Config Sda = Portc.1 I2cini t //Definicja zmiennej typu long Dim Mylong As Long //Odwołanie się do poszczególnych bitów zmiennej long...
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 definicja zmiennej eeprom
alarm master podłączyć split podłączyć zasilania pompki paliwa
ue48ju6400 podświetlenie wzbudzanie wzmacniacza
Błąd 460 w kasie fiskalnej Posnet Ergo - jak naprawić? Błąd 3808 w New Holland TD115 - AdBlue, SCR, EGR