http://obrazki.elektroda.pl/8230612800_1... Przedstawiam dzisiaj prosty gadżet jaki zmajstrowałem jakiś czas temu. Jest to w zasadzie zwykły elektroniczny metronom i nie różniłby się od wielu podobnych tu prezentowanych gdyby nie sposób ustawiania czasu pikania. Założenia: 1.Wykorzystać stare diody led, które leżały w szafce około 15lat......
Mam mały problem - nie potrafię przenieśc kodu z bascoma do avr c (eclipse). Tzn, wiem ze nie przeniosą go 1:1 chodzi mi raczej o ogólne zasady, szkielet: chodzi o zapis do pamięci eeprom stanu licznika - licznik sie zmienia przy pomocy przycisków góra/dół - przy wyłaczeniu zasilania oczywiście jego zawartośc jest kasowana. Oczywiście zapis przy każdej...
Tak właśnie to niestety wygląda :) Najpierw pomysł jest dość prosty, ot pomiar temperatury i załączenie przekaźnika lub kilku :) Potem warto byłoby to gdzieś wysłać , a potem jeszcze dobrze byłoby zmienić zdalnie tryb pracy i pętla główna zaczyna puchnąć, czynności mogą zacząć się na siebie nakładać., więc może od razu sztywno przydzielić im przestrzenie...
Hej wszystkim. Pytanie moje dotyczy przechowywania kilku zmiennych w pamięci ulotnej i ewentualny zapis wartości tych zmiennych do EEPROM w określonym momencie. Program napisany w Bascom i póki co nie mam ochoty przerzucać go do C więc muszę rozwiązać to na aktualnym etapie Otóż mam sobie 3 zmienne: [syntax=vbnet]Dim Czas_sekundy As Byte Dim Czas_minuty...
Witam, cel pozostał ten sam, lecz zmienił się kod, tym razem bez Lcd, więc jako zadanie dostałem opisanie krok po kroku otrzymanego kodu oraz przeniesienie kodu z języka Bascom na kod Asemblera i C. Jako, że programowanie nie jest moją mocną stroną, prosiłbym o pomoc (rady, sugestie najlepiej w sposób tzw. łopatologiczny jak można osiągnąć postawiony...
Witam. Jestem raczkujący jeśli chodzi o technikę Mikrokontrolerów. Od miesiąca posiadam zestaw EVB 4.3 z kursem AND-Tech. Zrobiłem prymitywne urządzenie do sterowania lampy. Potrzebuję je wzbogacić o funkcję zliczania czasu przebiegu tej lampy ( po to by wiedzieć ile już świeciła). Lampa ma ograniczony czas żywotności więc funkcja jest pożyteczna (pozwoli...
Witam czy ktos moze mnie oswiecic w jaki sposob zapisac wartosc do rejestru Counter1 pod bascomem ? Mam taki prosty program i za nic w siecie bascom nie che go lyknac ............. I taki oto blad ASSIGNMENT ERROR line 8 Procesor ma ten timer w sobie. Jezli to wina bascoma to w jaki sposob zapisac ta wartosc z poziomu jakiejs wstawki assemblerowj ?...
co napisaliscie jako swoj pierwszy program na dany uC w danym jezyku (rozbudowy sie licza, byle by wciaz byla to ta sama baza) n. n. - literka, cyferke z przodu dodam sam. zachowujcie chronologie w swoich dokonaniach na roznych platformach jezykowych i sprzetowych, tak aby to mialo sens! ____________________ 0x1-a. Freddie Chopin - migacz diodkami o...
Bascom - wersja 1.11.95 Kod, no jest tego sporo: - zegar PCF8563 - Zapis na SD - dwa czujniki DHT11 - odczyt z PCF8574AP ( klawiatura ) - RC5 - ma być DS18B20 - ma być DCF77, ale nie doszedłem do tego momentu ( tzn testowałem na innym procesorze i działało ) Działa - zegar PCF8563 - dwa czujniki DHT11 - odczyt z PCF8574AP w przerwaniu ( klawiatura )...
http://obrazki.elektroda.net/89_12240033... W ramach sprawdzenia umiejętności programowania oraz ich praktycznego wykorzystania zbudowałem zegar oparty na mikrokontrolerze AVR ATtiny 2313. Układ wzbogaciłem dodatkowo o licznik CMOS4017 w celu zwolnienia dwóch dodatkowych pinów, ostateczny układ połączeń z portami mikrokontrolera wygląda tak:...
podziękuj redakcjii edw bo listingi są ich. zakłądam ze urzywasz bascom avr inne listingi do pobrania ze strony edw są to programy testowe do oślej łączki z kursu avr 'C018b Prosty zegar z budzikiem Dim Sekundy As Byte , Minuty As Byte , Godziny As Byte , Uniwers As Byte Dim Sekjed As Byte , Sekdzies As Byte , Minjed As Byte , Mindzies As Byte Dim Godzjed...
Witam. Potrzebuję systemu do pomiaru czasu pracy urządzeń (maszyn). Sam pomiar czasu pracy realizowany miałby być przez jakiś licznik z interfejsem (np. ModBus'em). Aby wyeliminować zaliczenie do czasu pracy maszyny jej "puste" włączenie trzeba będzie jakąś logikę zorganizować, np. impuls na licznik po przekroczeniu pewnej wartości pobieranego prądu...
Witam, tworzę sobie mały licznik w Bascomie, wszystko ładnie mi już odlicza, proszę tylko o małą poradę - w jaki sposób za pomocą dwóch przycisków (+ i -) regulować szybkością odliczania liczby? Teraz posługiwałem się Do For Licznik = 0 To 9 Print Licznik Waitms 500 Next Loop teraz jak wykonać regulowanie czasu przerwy - czyli prędkości odliczania?...
Po małych zmianach działam na czymś takim. Pomimo taktowania z wewnętrznego kwarcu nie widać efektu. Jakiegokolwiek. [syntax=c]/* * RealTimeClock.c * * Created: 2013-11-17 01:46:48 * Author: Piotr Pabian */ #include <avr/io.h> #include <avr/interrupt.h> void init_RTC(void) { //ASSR = 1<<AS2; //Enable asynchronous mode TCCR2 = (1<<CS22)|(1<<CS21)|(1<&l...
Czyli nic nie zrozumiałeś z linkowanego programu. A szkoda... Zasada działania (podobnie jak dla wielu innych programów), to wykonywanie krytycznych sekcji w przerwaniach. Pętla główna może być zupełnie pusta. W programie głównym: 1. Zdefiniuj sobie 8 zmiennych (Parametr_x), które będą odpowiadały wartościom włączenia każdego z kanałów. Np. 100,47,198......
Niewiele nie oto chodzi bo raczej ma za mały opis wiec troszkę minie zanim ogarnę oco w tym chodzi jestem w pracy wiec niema za wiele czasu by popróbować .
A spróbuj tak: [syntax=basic4gl] ' Fuse bity ustawione fabrycznie $regfile = "m8def.dat" $crystal = 1000000 Config Portb = Output 'sterowanie segmentów LED Config Portd = Output 'sterowanie segmentów LED Config 1wire = Portc.5 Anoda1 Alias Portc.1 ' Lewy wyświetlacz Anoda2 Alias Portc.2 Anoda3 Alias Portc.3 Dim Nr_wysw As Byte Dim Liczba As Long Dim...
A może wyłumaczyć mi ktoś tak jaśniej niż whelpie bascoma ;) co to jest ten prescaler i co on dzieli. Może tak po kolei jak twój program widnieje: 1. Jeżeli PORTB jest przeznaczony do obsługi LCD to nie konfiguruj go w ogóle w stylu jaki podałeś w pierwszym poście. Config Portb = &B11111111 : Portb = &B11111111 ===> źle!!! Może to powodowac zakłócenia...
Podaje program z komentarzem. ............ Ps. Nie ładowałem do licznika wartości bo potrzebuje dwóch pełnych przeładowań. W programie jest zupenie nie ważne ile tych przepełnień wystpuje; istotne aby rachunek odmierzanych odcinków czasu był zgodny z zamierzonym. Skoro jesteś zmuszony zliczać przepełnienia (co jest rzeczą absolutnie normalną), więc...
8MHz. Inną opcją jest kalibracja pracy licznika.
Bascom sam się nie zajmie resetowaniem Watchdog'a, jak słusznie zauważył Holy . Żeby z niego skorzystać najpierw trzeba go skonfigurować (ustawić stopień podziału - od tego zależy czas potrzebny na przepełnienie jego licznika) poleceniem CONFIG WATCHDOG = czas , później uruchomić: Start Watchdog . Teraz w newralgicznych punktach programu musi zostać...
Temat licznika rozwiązałem kupując licznik kierunkowy . Zobaczę jak to rzeczywiście wychodzi w pracy , dziękuję wszystkim za udział w dyskusji . Temat zamykam
No przecież prosto. Konfigurujesz timer1 do pracy w normalnym ale nie robisz start timer. robisz przerwanie dzialajace na zbocze np. narastające-> Dalej : robisz zmienną flaga w przerwaniu robisz if flaga=1 then start timer1 flaga=0 else stop timer1 w rej od timera masz czas... kopiujesz gdzie Ci tam pasuje flaga=1 zerujesz licznik endif I tyle, oczywiście...
Poszukaj w archiwalnych nr EP i EdW, tam co jakis czas pojawiają sie podobne projekty. Co prawda, przeważnie widziałem na 4 przekaźniki, ale nie problem zmienić na 8. Często takie zabawki sa pisane w Bascom ale przykłady w C znajdziesz, więc nie duży problem odpalic w Arduino. Swoją drogą, nie jest to jakis wydumany projekt i nie ma większego problemu...
A kolega rozumie różnice pomiędzy pracą w trybie timer i counter ??? ;)
Konfiguracja timera '51 jest inna : [syntax=basic4gl]Składnia: CONFIG TIMERx = COUNTER | TIMER , GATE = INTERNAL | EXTERNAL , MODE = 0 | 1 | 2 | 3 gdzie: x0 – TIMER0, 1 – TIMER1, Opis: TIMER0 i TIMER1 mogą pracować jako liczniki impulsów zewnętrznych gdy pierwszy parametr jest ustawiony jako COUNTER. Impulsy zliczane muszą być dostarczane...
Kurde nadal nie kumam włącznik (przycisk) jest oznaczony jako Wl_wiatrak Ogólny warunek czy ma działać (wł/wył) Wiatr_ena Załączanie wiatraka OUT do przekaźnika Wiatrak Ustawiany czas pracy w sekundach w menu W_czas I z tego trzeba poskładać - chyba to wszystko co jest potrzebne ten kod po prostu na stałe wł i wył przekaźnik If Wiatr_ena = 1 Then Wiatrak...
"Timer" odnosi się do konfiguracji pracy licznika T/C, natomiast INT0 to przerwanie zewnetrzne ! Radzę poczytać HELP'a.
zapytam z czystej ciekawości. Na jakim interfejsie Miałeś podłączony wyświetlacz ? EBI w trybie 3 portowym + zatrzaski dla LSB i MSB. Dzięki temu przez DMA przesyłane były słowa, które nie wymagały modyfikacji. Nie polecam. W tym przypadku założyciel posta otrzyma jedynie przesuwający się punkt, a nie pełny wykres na wyświetlaczu. Mylisz się, a Kolega...
Ho ho ho :) ale narozrabiałeś :wink: Dim Timer0_200ms As Word , B_200ms As Bit ' dot. uaktualniania co 200ms Const Timer0_200ms_max = 400 REM to dodaj $asm inc {Timer0_200ms_max+1} $end Asm Dim Timer0_1s As Word , B_1s As Bit ' dot. uaktualniania co 1s Const Timer0_1s_max = 5 Dim Licznik As Word 'pomocniczy licznik do zminy stanu lini w glownej petli...
. Zamierzam zrobić tak by mogli wprowadzić korektę (jeśli będzie potrzebna) i zapisać w eeprom. czy to dobry pomysł? Jakoś tak; $Crystal=12000000 Config Timer1 = Timer , Prescale = 8 On Timer1 Inter_1mS Inter_1mS: Counter1 = Counter1 + Licznik (64036 - wychodzi z obliczeń, że da to 1ms) /tu odliczę sobie 103/ Błednie to rozumujesz, albo błednie podałeś...
Skoro masz aktualny czas to pewnie jest w układzie jakiś zegar czasu rzeczywistego... Urządzenie wystawia po uruchomieniu stan wysoki który ty odbierasz na uC i odczytujesz aktualny czas i zapisujesz go sobie do jakiejś zmiennej... Kiedy urządzenie się wyłącza znika stan wysoki a ty odczytujesz znowu aktualny czas... Wyliczasz jak długo urządzenie pracowało......
Nowa wersja BASCOM AVR (1.11.9.5) naprawia błąd z przesuniętym bitem AS2. Teraz instrukcja CONFIG powinna działać poprawnie.
Skoro sygnał ma być podawany na INT1 (PD3) to chyba tu jest problem bo podłączony jest tu wyświetlacz No ale jak to? Mówisz tak ja by wyświetlacz podłączył tam się sam. A przecież to Ty go chyba podłączyłeś. Wina więc nie w wyświetlaczu a w tym kto go podłącza :D No i druga sprawa. Nie bardzo rozumiem dlaczego chcesz podłączać sygnał do INT1, skoro...
Co do TTL'ów to proponuję bramki 74HC14 - mają one tpLH i tpHL rzędu 17ns - jest to stosunkowo mało nawet przy kwarcu 16MHz - wówczas takt zegara trwa ok 62,5ns - wprowadzi to oczywiście błąd stały ale jak myślę jest to błąd do wyeliminowania. http://www.nxp.com/documents/data_sheet/... Co do twojego głównego problemu to ja bym to zrobił...
programu nie wstawiłem bo nie wiem czy będzie potrzebny a jest strasznie pokręcony chodzi mi o samą zasadę dzialania coś porównane do czegos i nie wiem moze przypisane jakiejs innej zmiennej Troche haotycznie piszesz jaki to ma byc projekt. Z tego co zrozumialem, to potrzebujesz zrobic regulowany timer do kontroli czasu pracy i przerw silnika pedzacego...
Szukając rozwiązania mojego problemu napotkałem na rozwiązanie timera2 w pracy asynchronicznej. Tylko mam pytanie bo nie jestem pewien, przy kwarcu 32.768kHz przepełnienie licznika odbywać się będzie równo co 1s ?? Co zrobić żeby przerwanie z przepełnienia było co 0.25s ??
(at)dondu No i niestety sama próba uśpienia kończy się tylko uspaniem uc. Procesor nie chce się wybudzać od przepełnienia Timera2. Aby mikrokontroler wybudził się z power save musi mieć podłączony zewnętrzny kwarc 32,768kHz, a timer2 ustawiony do pracy w trybie asynchronicznym. Szczegóły podałem Ci w linkach. Przeanalizuj kod programu szczególnie w...
Nie można poprosic uC, żeby w tym czasie zajął się czymś niepotrzebnym (czym?) ale równie obciążającym? Procesor nie wie co jest potrzebne - robi co mu programista nakazał kodem programu (czasem nieświadom co nakazał :-)). Po drodze od programisty do kodu maszynowego (czyli tego co wykonuje procesor) jest jeszcze kompilator i miewa wbudowane opcje...
Czy timery pracujące jako liczniki pracują w tle programu głównego? Rozumiem że gdybym takowy uruchomił to po przeładowaniu mógłby on zmieniać wartość zmiennej krok_z automatycznie? Tak myślę że wtedy mógłbym tą zmienną licznikową zmieniać w zależności od czasu, dobrze myślę? Jak wyliczyć czasy pracy i ilość impulsów niezbędnych do obliczenia konkretnego...
Maksymalna częstotliwość jaka mnie interesuje jest uzyskiwana przy OCR1A = 19. Generalnie wszystko mi działa i to całkiem przyzwoicie, ale muszę zliczać wygenerowane impulsy. Myślałem już nawet o jakimś zewnętrznym liczniku - w postaci układu TTL którego wyjścia będę sobie odczytywał w pętli głównej. To już oczywiście abstrakcja.
Muszę wprowadzić zmiany w programie aby zamiast wyświetlaczy segmentowych użyć lcd. Czy jest z tym dużo pracy? [syntax=basic4gl]'************* Konfiguracja uC ***************** '***************************************... $regfile = "m8def.dat" $crystal = 8000000 Config Portb = &B00000000 : Portb = &B11111111 Config Portc = &B11111111...
No tak. Dzieki serdeczne. Tyle razy czytalem dokumentacje i zawsze jakos tego nie zauwazylem. Ale zawsze lepiej jak ktos to potwierdzi, bo archiwalne posty wskazują ze przerwania mogą nie działać. A o internal/external to myślałem że chodzi o wywoływanie przerwania ale już zrozumiałem. Prace skończyłem to zabieram się do sprawdzenia. Dzięki narazie
Właśnie pisałem jakiś kolejny program w GCC i jak pewnie większość z Was musiałem sobie skonfigurować liczniki by uzyskać... coś, nieważne co. Dziwię się, że środowisko związane z AVRGCC nie wpadło na pomysł by takie konfiguracje ludziom uprościć! Pewnie wielu z Was rozpisuje się w stylu: // ****************************************...
Tak patrzyłem ta to to jest to czego mi trezba było myśle że teraz sobie poradze a co do tego end if to czemu miałoby sie nie kompilowac to jest program na '51 a nie na AVR a tam chyba sa różnice ale nie ważne ważne że już dużo wiem i biore sie do pracy Dziekuje jaskby co bede pisał dalej hehe Pozdrawiam
ale podobno load działa (powinno) też przy 16 bitach Pewnie że działa , ale dla Timer2 . Ładuje odpowiednią wartość do rejestrów RCAP2L, RCAP2H , a T1 i T0 przy pracy reload , są 8-bitowe - koniec :D Niezbyt dokładna znajomość architektury , często się mści :( Piotrek
Witam Już dłuższy czas męczę się z banalnym jak mi się wydawało zagadnieniem wybudzania procesora z PowerDown. Wybudzanie chciałem zrealizować na wejsciu INT0. Samo wyzwalanie przerwania działa podczas pracy, gorzej w momencie kiedy ustawię PowerDown. Przerwanie juz się nie wykonuje. Poniżej fragment kodu [syntax=basic4gl] $regfile = "m8def.dat" $crystal...
ok ja podpowiem co to jest :D COnfig timer0 = timer 'ustaw timer jako licznik impulsów wewn. zegara procesora Mode=1 ' tryb pracy czujnika, to jest ladnie opisane w datasheet do procesora, 1 w tym przypadku oznacza normalna prace timera czyli zlicza impulsy gate = internal ' najprawdopodobniej chodzi tu o taktowanie licznika ale nie pamietam dokladnie...
. Deklarując zmienną "dowpisania" jako bajt nic się nie zmienia. W czasie jednej pełnej pętli głównej licznik zwiększa się o 3, więc dla najwyższej możliwej częstotliwości pętla wykona się 16 razy zanim dojdzie do przerwania, nawet zostawiając w głównej pętli wysyłanie ocr2 przez uart, gdyby wywalić tę linijkę, pewnie trwałoby to jeszcze krócej. Nie...
ICR/ICP to nie piny przerwań, to wejście zatrzaskujące aktualny stan licznika timera w w rejestrze ICR, skąd go można odczytać najlepiej w przerwaniu, lub po prostu w programie. Oczywiście każdy działający sposób jest dobry, jednak skoro można zaprząc do pracy hardware, to po co męczyć się softwarowo :)
Cały ten układzik ma posłużyć do kontroli maszyny zmęczeniowej , w której ważna jest właśnie ilość wykonanych cykli i częstotliwość z jaką maszyna jest ustawiona. Jezeli to ma sluzyc jako wyniki konkretnych badan "na endurance", to musisz dolozyc staran aby wyniki byly dokladniejsze a moc processor byla bardziej prawidlowo wykorzystana. Wiec tak na...
Może nie umie wstawiać? $regfile = "m88def.dat" $crystal = 1000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.5 , Rs = Portb.4 Config Portd = &B00001111 'portd 0 1 2 3 jako wyjscia portd 4 jako 1wire 5 6 7 jako wejscia Portd.5 = 1 Portd.6 = 1 Portd.7 = 1 Portd.3 =...
bascom licznik czasu licznik czasu bascom licznik czasu pracy urządzenia
seagate widzieć corsa czujnik położenia wału airbag faulty
zmywarka whirlpool regulacja drzwi zmywarka whirlpool regulacja drzwi
How to Purchase Electronic Circuits: PCB, Modules, Brands, Suppliers, Quality, Counterfeit Checks Schellenberg – dodawanie drugiego oryginalnego pilota nie działa: ograniczenia, procedura, modele