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...
Witam. Mam następujący problem, który wyskoczył mi podczas zabawy z bascomem. Zadałem sobie pewne zadanie (związane z robotem-samochodzikiem na którego przodzie umieszczona jest krańcówka dająca stan 1 na jeden z portów) którego opis jest następujący: Ustawiamy robota w punkcie A. Pojazd dostaje komendę "start" i włącza się licznik zliczający czas....
Program poprawiłem, ale dalej jest problem z drugim timerem tzn. działa tylko z TIMER0 , działa klawiatura, funkcja rozpędzania wirnika. włączenie drugie timera wiesza program. Zamieszczony program (tylko z TIMER0) działa fizycznie. [syntax=vbnet] $regfile = "m2560def.dat" $crystal = 16000000 '$sim '***************************************... Config...
Witam ! Kiedy piszemy skomplikowany program należy sprawdzić poszczególne fragmenty programu jeśli to jest możliwe. Ja sprawdziłem w symulacji Bascoma AVR, jak działa zamiana liczby czterocyfrowej na pojedyncze cyfry, aby można je było wpisać do poczwórnego wyświetlacza LED. I oto co mi wyszło : w miejscu Licznik = dla symulacji można wpisać dowolną...
Na tym wyświetlaczu się nie da. Musiał byś kupić wyświetlacz lcd na sterowniku hd44780 i ogarnąć programowanie w Bascomie (to jeden z najprostszych języków). Obejrzyj link pod moim postem, jest tam kompletny kurs Bascoma. Najpierw cię zaszokuje ilość kodów (jak każdego) ale jak się uprzesz to nauczysz się w dzień (podstaw). Następnie będziesz musiał...
Witam. Proszę o zerknięcie na kod i wytknięcie błędów programistycznych. Wiem, że większość z Was nie "uważa" języka Bascom, ale na razie tylko to umiem, więc tego proszę się nie czepiać. Kod jest oprogramowaniem sterownika akwarystycznego, który działa sprawnie już jakiś czas. Mistrzem w programowaniu nie jestem i wiem, że to i owo można było rozwiązać...
Witam Mimo, że większość proponowanych tutaj rozwiązań podłączenia RFM12 do Atmegi wykorzystuje SPI programowe, ja podłączyłem tradycyjnie, przez SPI sprzętowe - mimo, że nie miałem problemów z wgrywaniem kodu do Atmegi spiętej z RFM12, to uruchomienie ich razem jest problematyczne ( każde osobno działa bez problemu ) [syntax=basic4gl] $include "Config_AVR-DOS.BAS"...
Witam Do istniejącego i działającego "urządzenie" chciałem dodać możliwość odbioru, parsowania i odesłania SMS'a zwrotnego z danymi. Cały kod: Linia1 - to wyświetla Uart_numer - Linia1 Linia2 - to wyświetla Komanda - Linia2 czyli działa OK Ale jak podepnę modem GSM ( SIM900D ) to Uart_numer jest puste, a Komanda pokazuje ( czasem ) jakieś teksty z pierwszej...
Const odlicz=65436 rem dla zegara 12MHz odliczy tylko 100 impulsow (100us) dim licznik as word dim koniec as bit Config Timer1 = Timer , Mode = 1 , Gate = Internal On Timer1 etykieta Counter1 = odlicz do start timer1 bitwait koniec,set reset koniec rem petla powtarza sie co 100 us loop etykieta: licznik = counter1 rem To ma eliminowac czas od momentu...
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 Chciałem do kuchni wstawić czujnik PIR, ale z dodatkową zaletą, czyli stopniowym zwiększaniem i zmniejszaniem PWM, dodatkowo jeśli podczas zmniejszania PWM nadejdzie przerwanie INT1 od czujnika PIR, to program ma przestać zmniejszać, tylko zacząć zwiększać i to nie od zera, ale od wartości na której "zastało" go przerwanie INT1 od PIR. W sumie...
Kod w C: void main(void) { wlacz_timer(); while(1) { if(przyszedl_impuls) { przyszedl_impuls = NIE; if(pierwszy_odczyt) { pierwszy_odczyt = NIE; } else { czas_miedzy_impulsami = stan_timera - stan_timera_poprzedni; //czas jest w cyklach zegara timera. Musisz przeliczyć go na sekundy...
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...
Witam ! Tworzę mały sterownik do auta i mam problem. Dotyczy on pomiaru częstotliwości (a właściwie czasu trwania stanu niskiego lub wysokiego) na Atmedze 128, która po dalszych przeliczeniach będzie mierzyć obroty silnika. Sygnał , który będzie mierzony to prostokąt o wypełnieniu 50% i częstotliwości w granicach 15-150Hz. Jak w tytule pomiar ma się...
Witam, chciałbym prosić pierwszy raz od 16 lat w zasadzie o gotowca. Lub szkic programu żebym mógł sobie go sam napisać. Chcę dokonać przeróbki licznika Chcę w nim zrobić: 1. W momencie dotarcia do "umownego" czerwonego pola czyli powiedzmy zapalenia przez licznik diody LED 6000 obr. Atmega kluczuje 4 wyjścia z częstotliwością 2Hz przy dojściu do 7000...
Jdno pytanie czy ponizsza konfiguracja bedzie prawidłowa : Chodzi o to aby licznik zliczał impulsy wewnętrzne z kwarcu przez czas jaki na int0 bedzie stan wysoki. w momencie pojawiania sie zbocza opadającego aby program przchodził do obsługi przerwania : Fragmenty w bascom : config timer0 = timer , gate = external , mode =1 set Tcon.0 - reakcja na zbocze...
wydaje mi sie ze mozna to zrobic w przerwaniu i mierzyc za pomoca licznika czas pomiedzy nastepnymi zgloszeniami przerwania (przerwania zglaszane kazdym zboczem) i w ten sposob ocenic czas impulsu i przerwy miedzy nimi... ale to tylko wywody na sucho, pozdrawiam
Problem wyniknął z mojego poprzedniego tematu... ;) Wszelakie przykłady jakie znajduję na necie dotyczą timera w trybie 1-2, a nie potrafię znaleźć nic w "3" :| Chcę użyć timer0 jako "podwójny licznik": 8-bitowy licznik impulsów i 8 bitowy licznik czasu. Wg. dokumentacji: No dobra, ale jak to wygląda w praktyce? Jeśli mam 1/2 licznika i 1/2 timera to...
Witam Napisalem sobie program w Bascomie ktory liczy czas stanu niskiego na pinie INT0. Powiedzmy ze wszystko dziala wporzadku ale zastanawia mnie jedna rzecz. Ponizej przedstawiam kod programu. Atmege48 idzie na 8 MHz, czyli jeden takt zegara=125ns ?? Czas licze poprzez Timer1(16 bitowy), W przerwaniu od przepełnienia licznika Timer1 napisalem procedurke...
napisałem prosty programik w bascomie i mam problem mianowicie licznik liczy caly czas aż do przepelnienia . Pin b.0 jest podpiety do kolektora fototranzystora (emiter na mase). Własiwie nie ma to znaczenia ponieważ po odpieciu i tak liczy . Prosze o pomoc -co jest nie tak lub o sugestie jak zrealizowac układ ktory zliczając zadaną wartość impulsów...
Oto wycinek kodu odpowiadający za odczyt i zapis zegara: Config Sda = Portc.4 Config Scl = Portc.5 Declare Sub Odczyt_rtc(sekunda As Byte , Minuta As Byte , Godzina As Byte) Declare Sub Zapis_rtc ... do Call Odczyt_rtc(sekunda , Minuta , Godzina) if Pind.3 = 0 Or Pind.2 = 0 Then Gosub Menu ... loop Menu: Call Odczyt_rtc(sekunda...
Witam Mam płytkę z Atmega8 połączoną z czujnikiem PIR ( wejście INT1 przez transoptor ), do tego pomiar ADC ( od wartości adc zależy czas po jakim PWM będzie zmniejszone, opcjonalnie chcę też pod INT0 podpiąć przycisk, coby włączyć światło, gdybym nie znalazł się w zasięgu czujnika. Dodatkowym "bajerem" jest to, że światło ( listwa LED ) powoli się...
Witam, Próbuje dopisać funkcję wprowadzania daty i czasu za pomocą klawiszy w Bascomie na scalaku DS1307, problem mam taki ,że nie widzę nastaw online :-) tylko dopiero po wyjściu z menu i nie wiadomo do końca co się wpisało . Dodano po 3 zrobione może się komuś przydać , [syntax=vbnet] $regfile = "m644pdef.dat" ' specify the used micro $crystal = 16000000...
Można to łatwo sprawdzić. Oto mój testowy program: $crystal = 11059000 $baud = 9600 Dim Pin As Bit Dim Wewn As Word Wewn = 0 'vvv---tu ustaw pierwszy Breakpioint (F9) 'Jak symulacja sie zatrzyma skasuj licznik czasu 'symulatora (kliknij na niego), i wznów symulacje nop Do Pin = P3.0 Incr Wewn Loop Until Pin = 0 Or Wewn = 498 nop '^^^---tu...
Witam, wymyśliłem generator ("prostokąt") na atmega. W założeniach miałem częstotliwość do 5MHz i wyświetlanie na LCD w Hz. Moje pytanie brzmi czy program jest napisany poprawnie, oraz co należało by zmienić? $regfile = "m8def.dat" 'Info dla kompilatora. $crystal = 8000000 'Informujemy kompilator o kwarcu 8MHz. Config Lcd = 16 * 2 'Konfiguracja...
Zupełnie inaczej. Obsługa przerwania, która tylko ustawia znaczniki, zupełnie nie ma sensu. W przerwaniu timera zgłaszanym np. 50 (20..100) razy na sekundę, czy poprzednio przycisk był zwolniony, a teraz jest wciśnięty. Jeśli tak - ustaw znacznik do ew. wykorzystania w ew. pętli zdarzeń (to dość nieszczęśliwe rozwiązanie, ale w Bascom i u początkujących...
Kolego "bart-projects" Czy mógł bym liczyć na Twoje wsparcie? Obecnie mój program wygląda tak: [syntax=Bascom]$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 40 $swstack = 16 $framesize = 32 '=== Wejścia === Config Pinb.7 = Input 'MIN Config Pind.7 = Input 'MAX Config Pinb.6 = Input 'Suchobieg Config Pind.1 = Input 'Start Config Pind.0 = Input...
Pisze programik w bascomie (51'), który między innymi ma zliczać czas od włączenia układu. T0 i T1 będą wykorzystane do liczenia impulsów (ale to dopiero później) Wymyśliłem sobie, że czas będzie mierzony na podstawie licznika w głownej pętli programu tzn: Do Debounce P3.0 , 0 , Przycisk , Sub Gosub Opcja Incr Czas Waitms 50 Wczas = Czas * 20 Loop No,...
...uruchom jeden timerów, najlepiej 16bitowy jako globalny, niech się kreci non stop. Ustaw sobie trzy zmienne sprawdzające non stop, kilka/nascie razy na sek. stan licznika...każda zmienna sprawdzana po naciśnięciu przycisku, teraz wystarczą proste warunki na te Twoje 15sek Pzdr.
Witam Postanowiłem zbudować miernik odległości wykorzystujący ultradźwięki. Zakupiłem 2 czujniki w TME Jednego używam do wysłania fali a 2-go do odebrania. Po przejrzeniu postów na Elektrodzie i innych www zbudowałem poniższy układ w załączniku (PDF). Program napisałem a Bascomie ale NIESTETY NIE DZIAłA. Oto on $regfile = "m8def.dat" $crystal...
Witam Dość długo podchodziłem do tego zagadnienia. Początkowo chciałem zrealizować to na mikrofonie i wzmacniaczu. Ostatecznie po poszukiwaniach i analizie postanowiłem to zrobić na odczycie temperatury przy nosie. Wdech omiata termometr powietrzem otoczenia i go ochładza, a wydech podnosi temperaturę powietrzem z płuc. W zasadzie to działa, ale sam...
Witam Proszę o pomoc. Potrzebuję wykonać okład mierzący bardzo krótkie odcinki czasu. START podanie impulsu na któryś pin, STOP podanie drugiego impulsu na kolejną nóżkę. Procesor Atmega32 język Bascom. Jaki najmniejszy odcinek czasu mogę zmierzyć ? Jak wygląda procedura pomiaru czasu miedzy Start a Stop? Bardzo proszę o podanie fragmentu kodu. A czy...
Witam. Mam pytanie jak obliczyć czas przerwania od licznika T0 w mikrokontrolerze Atmega8. Gdy preskaler=1, licznik zaczyna liczyć od 0, oraz mikrokontroler działa na wewnętrznym oscylatorze (1MHz)??
To prawda że nie są to procesory wielordzeniowe. Windows może wykonywać kilka zadań "jednocześnie" pracując na procesorze jednordzeniowym ( pamięta ktoś może 386, 486, pentium 166 itp ? ) Zrobiłem kiedys program "wielozadaniowy" na at90s8535 polegało to na odczytaniu stanu interesujących mnie wejść w pętli głównej programu i wywołaniu odpowiednich procedur....
Pozwolę sobie zamieścić to co udało mi się w nocy i dziś wymodzić. Do ' ------------------------------------ Pierwszy kanał ---- If Flaga1 = 1 Then ' sprawdź flage1 - dla WLACZ If I1 = Czas_impulsu1 Then ' porównaj liczbe ms z DATA dla WLACZ I1 = 0 ' wyzeruj licznik ms Toggle Flaga1 ' przestaw flage1 Toggle Led1 ' przelacz diode (traznystor)...
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?...
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...
MADMAX1978 --> hehe ciekawy temat ;) dla grupy para-militarnej . No ale jeśli to tylko zabawa czy tam gra to żaden problem. Tak jak koledzy mówili możesz użyć dowolnego procka nawet ATmega8 jednak tak prostą rzecz spokojnie da się zrobić na jeszcze mniejszym procku - wystarczy np ATtiny2313 Niestety obawiam się, że sama wiedza jaki to procek - nie wystarczy...
Może przybliżę bardziej zastosowanie. Chodzi mi o program sterujący silnikiem krokowym (w założeniu unipolarnym) z progrmów typu mach3, step2cnc, turbocnc. Programy te jak wiadomo podają przez port LPT step i dir. Step czyli krok można wykorzystać jako sterowanie przerywaniem int1 w naszej atmedze. Natomiast dir określa kierunek i przyjmuje stan niski...
Witam . Od dłuższego czasu walczę z obsłużeniem licznika impulsów w ww procesorze . Otóż sprawa wygląda następująco . Mam sobie układ taktowany częstotliwością 4 Mhz z kwarcu zewnętrznego . Na pind.5 (t1) przychodzi sobie sygnał prostokątny o częstotliwości 1 Mhz . Jest on podawany przez pewien okres czasu a ja mam zliczyć jego ile było okresów tego...
Bardzo dziękuje, działa jak trzeba. Teraz rozumiem, że logiczna kolejność jest najważniejsza - warunek zwiększania Menu_ustaw był nie taki jak trzeba i źle umieszczony. Na razie wyjście z programu zrobiłem na trzecim przycisku, ale trochę szkoda go marnować do tego, można na nim zrobić obsługę czegoś innego - w przypadku, gdy program nie jest trybie...
"Ćwierkanie" moim zdaniem nie jest związane ze sterowaniem, ale nie twierdzę że tak jest na pewno. Sterownie wygląda następująco: uC wysyła komendę po UART i zaczyna się odtwarzanie w tym czasie nie przesyłam żadnych innych poleceń. W czasie odtwarzania jedynie uC odbiera informacje z VMusic, w kolejności (nazwa pliku, nr. ścieżki, wykonawca, tytuł,...
Napisałem sobie taki programik sterujący oświetleniem w samochodzie. Napewno jest za bardzo skomplikowany i da się to napisać prościej, ale z moją wiedzą napisałem taki i chce go wykorzystać bo działa tak jak chciałem. Natomiast brakło mi już wiedzy aby żarówka nie gasła od razu a stopniowo przygasała. Znalazłem taką formułkę która gasi stopniowo żarówkę...
Witam, męczę się z tym drugi dzień i dalej nic - może któryś z bardziej doświadczonych Kolegów będzie w stanie pomóc. Program ma mierzyć czas przelotu pocisku między 2 bramkami (z fototranzystorami), a następnie wyliczyć z tego prędkość (znana odległość 10 cm między nimi). Korzystam z przerwań INT0 (start) i INT1 (stop) oraz licznika Timer1. Uc jak...
Witam!! Układ sterownika tampoprintu zbudowany na bazie mikrokontrolera AVR, schemat poniżej, zasilanie dostarczane przez dwie osobne przetwornice +5V dla logiki oraz +24V dla elektrozaworów i oświetlenia, na przewodach zasilających koraliki ferrytowe, pole masy na płytce, tranzystory sterujące cewkami zabezpieczone diodami, przy samych cewkach we wtyczkach...
Mniej więcej wiem jak działa timer0, tylko nie wiem jak go wykorzystać w programie. W prostych programach, podają jak załatwić sprawę przy 1 diodzie, a ten program z linku jeszcze jest dla mnie za trudny [syntax=basic4gl]$crystal = 8000000 Config Pinb.1 = Output Config Timer0 = Timer , Prescale = 64 On Timer0 Przerwanie Dim A As String * 5 Dim B As...
Witam! Sterownik lcd t6963. Bascom Jak zrobić czyszczenie ekranu? Próbuje cls, cls text, cls graph, ale nie działa... Mam podprogramy, i chce wyczyścic ekran po przejsciu do następnego podprogramu. Niestety nie działa czyszczenie ekranu.. Kod wygląda na razie tak: ........................................... [syntax=basic4gl]$regfile...
Zaadaptowałem kod obsługi impulsatora jednego z Kolegów i teraz działa, winny takiemu działaniu jest oczywiście sam impulsator kupując za 4 zł nie liczcie że będzie działał jak dużo droższy ( już NIGDY nie kupie żadnego taniego !!!, szkoda czasu i nerw) code/ Dim Temp10 As Byte Dim Stan_imp As Byte Dim Czas As Byte Dim Czas0 As Byte Dim Wynik As Integer...
Jak to jest że ze skomplikowanymi sprawami sobie człowiek radzi a na prostą rzecz czasami wpaść nie może ... Kliknąłem pomógł. Dzięki.
Witam. Potrzebuję pomocy. Zrobiłem sterowanie do elektrozaworu do CO, lecz Ds18b20 od czasu do czasu pokazuje jakaś śmieszna temperaturę np. 340st lub -84 i inne. odczyt temperatury realizuję w ten sposób: rezystor 4,7k oczywiście wpięty. Ggdzie mam szukać problemu? Pozdrawiam. Proszę w przyszłosci umieszczać w tytule znacznik
Jestem początkującym z programowaniu w C.Opiszę problem : Zbudowałem licznik zwojów do nawijarki na ATMEGA 8 . Licznik liczy zwoje przy pomocy optobariery szczelinowej i tarczy z dziurką(czyli zliczanie gdy na wejściu stan niski) liczy w przód i w tył(przy odwijaniu). Jedno wejście ATMEGi zlicza impulsy (PULSELOW) , drugie to wejście sterujące aby zmieniać...
Obecnie taki odbiór rozwiązuję inaczej, ale w Twoim wydaniu coś czuję że to nie odbiór danych przy taktowaniu 16MHz zajmuje dużo czasu a bardziej wyświetlanie tego na LCD. Jeśli by Ci to odpowiadało to możesz: odebrac dane, i zrobić z nich tą tablice stringów po czym ustawić jakąś flagę "Refresh_lcd" Potem w każdym przejściu pętli wyświetlać/odświeżać...
coś takiego wymyśliłem Nie napisałeś co zmieniłeś a nie mam ochoty w grę "Pokaż 10 różnic". Zmian w wyświetlaniu nie wprowadziłeś a te udziwnienia nie ułatwiają analizy programu. Jeśli obstajesz przy swoich dziwnych rozwiązaniach to czemu pisałeś Chcę by ktoś doświadczony pomógł mi zoptymalizować kod Dodano po 5 pomysł nie wypalił z ustawianiem flagi....
Watchdog to taki licznik który się inkrementuje i jak dojdzie do końca licznika to generuje reset mikrokontrolera. W swoim kodzie musisz umieścić procedurę kasowania licznika w czasie krótszym niż czas potrzebny na przepełnienie licznika Watchdog. Jak główny program z jakiegoś powodu nie zdąży skasować licznika (np. program się zawiesi) to całość się...
A czy koledzy zastanowili sie ze co 2 przerwanie t1 wystapi podczas obsługi przerwania t2 tj mniejwiecej cykl zegarowy po T0 i wtedy moze zostac nie wykonane ze wzgledu na kolejnosc wykonywania przerwań włączanie obu liczników równocześnie i to z wielokrotną liczbą 2*5=10 prowadzi do takich anomalii zreszta wszystko co robia dwa przerwabnia mozna zrobic...
Witam Czy można jakoś ustawić symulator Bascom żeby działał w czasie takim jak napisane jest to w programie? W programie mam ustawione zwiększanie licznika co sekundę, a w symulatorze trwa to około 4, 5 sekund. Po wgraniu do mikrokontrolera wszystko jest w porządku. Pozdrawiam.
Witajcie! Dziś właśnie jest ten dzień, w którym 1 raz zasiadłem do mikrokontrolera mega8 i pod bascom próbuje coś takiego: Chciałbym zliczać liczbę wciśnieć przycisku np na porcie d.0 i wynik wysłać wyświetlacz na lcd zrobiłem tak [...] Impuls Alias Pind.0 Config Impuls = Input Dim Wartosc As Integer Dim Pom As Integer Wartosc = 0 Pom = 0 Set Pind.0...
...może i nie jest to trudne, ale ja dopiero raczkuje w bascomie :) Stara śpiewka o raczkowaniu :| Liczyć chyba umiesz :?: Przy wciśniętym przycisku(S1=0) ,jedna pętla w Twoim kodzie , to nie mniej niż 150ms , co dla 256 kroków PWM-a , daje czas ponad 38 sekund na przejście całego zakresu - zdecydowanie za długo.Poza tym , Twój kod zmienia tylko stan...
Witam, pisząc program do sterownika natknąłem się na pewne dziwne zachowanie, natomiast: -końcówkę PE5 mam ustawioną jako wejście -podwieszona jest za pomocą instrukcji set (bascom) -do końcówki dołączony jest tranzystor npn który zwiera ją z masą Program w pętli oprócz sprawdzania tej końcówki mierzy temperaturę z czujnika ds18b20. Problem jest w tym...
Ja też pracuje nad takim urządzeniem i myśle sobie, ze sam pomiar tempa to pikuś. ale jak wysterować wyświetlacz LED? Myślę na programem częstotliwościomierza który będzie mierzył częstotliwość przez pewien czas (np. 2 sekundy), uśredniał wynik pomiaru i mnożył do przez 60. Do tego celu mam zamiar urzyć uP ATTINY2313. Chcę zrobić wyświetlacz z segmentów...
Tak, tyle mam. Gdybym mniał mniejszy, to bym mniejszą wartość wpisał :) No tak ale lepiej upewnic sie 2x bo czasem jednak mozna cos przeoczyc...
naklepaliscie juz 13 postow o rzeczy, ktora dla osoby zapoznanej z tym dokumentem jest oczywista jak to, ze liczby binarne to tylko 0 i 1. Dla jednych oczywiste, dla innych nie, kolega Cepelia jak sam napisał, siedzi dopiero w tym dwa tygodnie. Proponuję zrobić to na timer1 - jest 16 bitowy, dlatego można go użyć do zliczania większej ilości impulsów...
tak właśnie podejrzewałem że bascom nie lubi operacji z dokładnym czasem. Bascom (nie) lubi operacji precyzyjnych czasowo tak samo jak i każdy inny język. Wpisując do rejestru licznika 8bitowego wartość 255 i preskaler 1 lub 8 to nawet w asemblerze będziesz miał taki sam efekt.
Może być po $crystal. Dodano po 4 Jak chcesz jeszcze zaprogramować te "zablokowane" procesory to wpisz tutaj: Jakąś wielgachną liczbę. Np. 10000. PS. Ale zdajesz sobie sprawę z tego że ten program z kwarcem 32kHz nie będzie demonem prędkości? Dodano po 3 Ja na Twoim miejscu uruchomił bym to na wewnętrznym generatorze 8MHz, a z generatora 32768Hz taktował...
co to znaczy zegarek, licznik czasu rzeczywistego? Nie wiem czy do konca rozumiem twoj problem, bo chyba sam dokladnie nie wiesz co piszesz. Przerwanie moze ci sie wywolywac w roznych okresach czasu poniewaz timer0 i timer1 roznia sie iloscia bitow w counterze Dodano po 2 timer0 jest 8 bitowy, a timer1 16 bitowy Dodano po 1 i timer0 nie ma wyjsc na...
Nie-Ten napisał inną książkę. A potrzebna jest książka dla tych którzy nie przepisują gotowców ale chcą zrozumieć JAK to działa. Dla zaawansowanych. To jest język (jak dla mikrokontrolerów) wysokiego poziomu. Ma swoje wady i zalety. Ma też błędy-jak wszystkie języki. Ale Ty - możesz. Może być tylko odwołanie do sprzętu-protokół, czasy, poziomy sygnałów...
Teraz nie mam pod ręką niczego co jednostajnie i stabilnie może dawać sensowne impulsy zdatne do jakichkolwiek testów prędkości. Mam impulsator z rolki myszki, ale nie mam za specjalnie czym nim kręcić (w rozsądnych prędkościach). Nie wiem jak to jest rozwiązane w oryginalnych licznikach, ale zdaje się, że jest tam zwykły kontaktron i działa. Rozwiązań...
Prawieprzewodnika wymieniłem dwie godziny temu. Katowałem go wrzątkiem, wszystko okazało się w porząsiu. Przy okazji poprawiłem kilka byków w programie. Układ działa rewelacyjnie! :D Z mojej strony temat zakończony, dziękuję za wszystkie wpisy :) PS. Na odsprzęganie zasilania jestem wyczulony - praktyka z układów lampowych. Lecz na te 100nF w życiu...
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...
Witam. To tej pory nie stosowałem zbyt często timerów do generowania przerwań celem generowania odcinków czasu. Być może dlatego żyłem w słodkiej nieświadomości pewnych komplikacji będących nie bez wpływu na dokładność odmierzanych odcinków czasu. Do tej pory wydawało mi się, że dla danego rezonatora kwarcowego wystarczy: 1. Obliczyć czas trwania pojedynczego...
No to jak fotografia klasyczna nie umarła- to masz: 'program do pomiaru czasu wciśnięcia przycisku podpiętego do pinb.0 'Do pinb.1 podpięta dioda 'Przy tych ustawieniach Timer1 zwiększa się co 128us a licznik przepełnia się co 8.389s 'przy timer1 prescale=64 Timer1 zwększa się co 8us i ma zakres 0.524s 'Przy ustawieniu Timer0 prescale= 256 sprawdzanie...
Broń Boże nikogo nie olewam programy o których pisałem to generator częstotliwości lub obrotomierz z licznikiem czasu pracy więc muszą mieć fusbity ustawione jak należy oczywiście jak wróce do domu to wkleje zrzuty teraz pisze z telefonu więc mam problem wykonałem dodatkowo płytke do testowania aby wykluczyć kłopoty z zestawem uruchomieniowym Edit:...
właśnie dlatego nie chce korzystać z DEBOUNCE bo później mogę mieć problemy odnośnie biblioteki to mi sie ona nie przyda bo tylko przyspiesza transmisję między wyświetlaczem a to mi nie pomoże bo znaki nadal będą migać i nic nie będzie widać może za pomocą LOCATE jakoś sobie poradzę Bardziej martwi mnie liczenie tych impulsów nieszczęsnych już nie wiem...
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. Co do twojego głównego problemu to ja bym to zrobił tak, że zaprzągłbym do pracy PWM. Wpisując do licznika...
Jeżeli ty tylko jasnością diody chcesz sterować to daj prescale =64. w zupełności ci to wystarczy i prockowi kupa czasu zostanie na inne bajerki. O nie, Prescale 8 nawet nie starcza Gdybym dał 8 Przy zegarze 8MHz i liczniku Timer0 zliczającym do 256 i prescalerze równym 8, otrzymujemy 3906 przerwań na sekundę do obsługi programowego PWM. 3906 przerwań...
Jakiś czas temu popełniłem kolejną wersję, ale nie miałem czasu jej wstawić. [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 $sim Config Portc = Output Config Portd = Output Config Pinb.0 = Input Config Pinb.1 = Input Portc = 0 Portd = 0 Rst Alias Pinb.0 Plus Alias Pinb.1 Dim X As Byte Dim Y As Byte Dim Z As Byte If Plus = 1 Then X = X +...
Witam. Założenie jest proste czyli zwykły licznik w zakresie 0 - 99 km/h. Czujnikiem ma być powiedzmy kontaktron. Niestety mam problem z napisaniem programu. Wg mojej koncepcji przerwanie od timera ma zwiekszać stan zmiennej co 1ms. Po wykryciu sygnału od czujnika wartość czasu ma być przepisana do kolejnej zmiennej i dalej liczona dopiero predkość...
Nie znam Bascoma więc nie wiem co Robią pokazane programy ale jest prosty sposób na to. Ustawiasz jeden Timer tak aby zgłaszał przerwanie (np od przepełnienia) co 1 ms (czy jaką tam sobie dokładność chcesz). Timer sobie zasuwa i zgłasza przerwania, w przerwaniu sprawdzasz stan jakiegoś Pinu i jeśli wtrysk jest otwarty to dodajesz licznik ms a jeśli...
Przepraszam za głupie pytanie, ale jak ten program działa? I po co te dwa warunki? Bo rozumiem, chciałbyś wyeliminować drgania styków, masz opóźnienie 50ms, ale wtedy sprawdzasz, czy przycisk jest wciśnięty, a nie, czy puszczony... Co prawda Twój program będzie działał, ale trzymanie przycisku nie będzie powodowało zwiększania - tak miało być? Jeśli...
Witam. Mam problem z timerem, który będzie liczył impulsy na wejściu T1 Wgrywam taki kod: [syntax=basic4gl]$regfile = "m8def.DAT" $crystal = 8000000 $baud = 9600 Config Timer1 = Counter , Edge = Rising Timer1 = 0 Do Start Timer1 Stop Timer1 Waitms 500 Print Timer1 Loop End[/syntax] Problem jest w tym, że jak daje zasilanie na t1 to cały czas uzyskuję...
Wcześniej tylko tu zaglądałem, ale teraz mam jedną rzecz i niewiem jak ją najlepiej wykonać. Robię licznik szybkości do MZ ETZ w wersji elektronicznej. Założenia: - maksymalna prostota ale zgodnie z moimi założeniami (wyświetlanie na ekranie LCD i na diodach) - niska cena - coś się nauczyć nowego nawet na błędach = z tym ostatnim idzie mi chyba najlepiej...
Dodałem funkcję licznika czasu: Dodano po 2 Zmiana zmiennych jest taka: [syntax=basic4gl]'---ZMIENNE------------... Dim Rozmiar As Long , Wolne As Long , Odebrany_znak As Byte , Cos_przyszlo As Byte , Outbin As Byte Rozmiar = 0 [/syntax] [syntax=basic4gl] If Odebrany_znak = 1 Then Outbin = Rozmiar...
witam Czy da się zrobić jakimś sposobem pomiar przebiegu prostokątnego mając do dyspozycji tylko 1 timer? nie zależy mi specjalnie na precyzji a jedynie na porównaniu wartości zmieniających się do zapisanej. jakbym miał dwa timery to jednym przerwanie co pewien czas i odczyt licznika z drugiego, a tu?
Próbuję odpalić zegarek RTC, ale brak reakcji, czy ktoś mógłby coś podpowiedzieć? Pomóc w uruchomieniu?[syntax=c]#include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #define F_CPU 8000000 ISR (TIMER2_OVF_vect) // obsługa przerwania licznika przepełnienia { PORTD = 0x00; _delay_ms(250); PORTD = 0xFF; _delay_ms(250);...
Witam, Poniżej zamieszczam kod - przedstawia on sterowanie multipleksowe 7-seg wyświetlaczem LED - jest to lekko przerobiony kod z popularnej i znanej każdemu książki. To nie jest tak, że to ma być stoper - po prostu chciałem fragment tego kodu wykorzystać do innych celów, ale jest pewien problem. Otóż poniższy kod sprawia, że po uruchomieniu na wyświetlaczu...
Tranzystor wymusza stan niski na pinie, prosty program zapalający diodę jak jest przesłona, działa. Oczywiście że jest dany rezystor. Problem polega na tym że jak zewrę do masy pin portd.2 to licznik cały czas liczy a chcę aby tylko raz dodał do zmiennej +1.
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...
Po upływie 655.35ms następuje przepełnienie licznika, w takiej sytuacji trzeba utworzyć zmienną która będzie zliczać ilość przepełnień. Czyli jeżeli Err=1 wtedy przepełnienie = przepełnienie +1 ........ na koniec liczymy pełnywynik=(przepełnienie * 65535) + wynik .........
Cześć. Mój problem polega na tym, iż muszę oprogramować stosunkowo prosty układ. Na jego wejściu pojawiają się impulsy dodatnie, które przez rezystor i tranzystor npn zwierają nogę procesora do masy. Oczywiście ta noga jest programowo podciągnięta do plusa. Teraz do rzeczy - muszę w głównej pętli programu zawrzeć następujący warunek: - gdy podam jeden...
To ją usuń ;) Hahaha :D Lock blokuje zwiększanie licznika do czasu puszczenia przycisku. Pętla wykonuje się szybko i nawet jeśli sprawdzałbyś przyciski co 10ms to chwilowe naciśnięcie przycisku mogłoby załadować wartościami jednego przycisku kilka bajtów :D ..a tak, jedno naciśnięcie, jedna wartość w kolejnym bajcie. [url=]Pod tym linkiem niedawno umieściłem...
Przeczytaj te artykuły: Timer2 jest 8 bitowy więc zlicza 256 stanów. Ustawiając preskaler timer2 na maksymalną wartość 1024 z poniższych obliczeń otrzymasz: ilość sekund = 1/(32768 /1024 /256) = 8 sekund Co taki czas wybudzi się Twój mikrokonroler a w przerwaniu będziesz odliczał za pomocą zmiennej okres czasu jaki sobie zażyczysz, będący wielokrotnością...
Prawdę mówiąc wg. mnie robienie tego na AVR to tylko w ramach ćwiczeń bo sens użytkowy tego jest mały. Do audio wystarczy. W necie pojawiło się tego sporo, na Allegro można tez kupić, tyle, że są to w zasadzie dwa projekty (jeden C, drugi BASCOM) powielane z istotnym błędem w postaci drabinki R-2R i to o zgrozo z rezystorów 5%. Swego czasu miałem taki...
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...
Tak myślę że dużo jaśniej tylko czemu jak robię taki zapis nic nie wyświetla tylko same zera? Dodano po 29 Próbowałem MAKEBCD ale tam tylko dwie cyfr i stosowanie maski na pewnej stronie trafiłem na na funkcje dec2bcd działa podobnie jak MAKEBCD tylko na kilka cyfr tyle że moja wersja kompilatora tego nie obsługuje , znalazłem funkcje mod i poszukałem...
No super to wygląda. Oby gdzieś poza ekranem nie było inaczej. Teraz możesz w głównej pętli dodać jakieś wyświetlanie informacji na wyświetlaczu sprawdzając jednocześnie, czy wykres na oscyloskopie się nie zmienił (obsługa wyświetlacza nie ma wpływu na przerwania). Jeśli nadal działa dobrze, to w procedurze obsługi przerwania możesz dodać zwiększanie...
Mam w domu 4 piloty - Samsung (wieża), karta tv (pixel view), Panasonic (tv), samsung (tv) i żaden nie działa mi przy zastosowaniu funkcji getrc5 :( Wpadłem na pomysł napisania własnej procedury obsługi pilota. Już zrobiłem pierwszy krok ku temu, zależy mi na pilocie od wieży, pracuje on na układze bu2478. Chyba nie jest to RC5. przy pomocy komputera...
Witam, w ramach pracy mgr tworze automatyke do bramy. Napęd itd to jest rzecz malo istotna, ale sterowanie zrobiłem na atmedze 16, program napisłem w bascom, wydaje mi sie z reszta bardzo prosty, ale jakieś cuda sie robią:P mianowicie. brama po otwarciu czeka sobie pewien czas i sie zamyka. W trakcie czekania aktualny czas wyświetlany jest na lcd. I...
Witam, miałem na zaliczenie zrobić jakiś projekt z wykorzystaniem mikrokontrolera AVR, jako ze miałem tak mało czasu jak doświadczenia to zrobiłem działający projekt ze strony '************* Konfiguracja uC ***************** '***************************************... $regfile = "attiny2313.dat" $crystal = 16000000 Config Portb = &B11111111...
Bawiłem sie w bascomie ładne pare miesiecy, od bascoma zacząłem swoją (trwającą już od zimowych ferii 2004) przygodę z uC, no na początku oczywiście było świetnie, byłem zdziwiony jakie to proste i nie przejmowalem sie tym że proste programy zajmują ponad 1k w pamieci programu. Pierwsze programiki to było coś wspaniałego, programowałem na początku tylko...
Podpowiem Ci że fajnie jest sobie na kartce napisać szkielet i wszystko opatrzyć etykietami lub używać funkcji. Wtedy wszystko jest bardziej czytelne i nie ma żadnych zapomnianych linijek. Kod wykonuje się linijka po linijce od góry do dołu i jeżeli niczym go nie zawrócisz to się na końcu zatrzyma. W pętli głównej dajesz sprawdzanie wartości i ewentualne...