Witam, to jest podchwytliwe pytanie? [syntax=vbnet]suma_ok_nok = licznik_ok + licznik_nok procentowo_ok = licznik_ok * 100 procentowo_ok = procentowo_ok / suma_ok_nok [/syntax] Pozdrawiam.
Bascom zawsze używa metody obliczeniowej, która należy do zmiennej wynikowej. Oznacza, że w tym przypadku Bascom wykonuje obliczenia na bajtach. Wartość obliczeniowa2 jest typu Word. Czyli (1) = Liczba_ok / 100 zmienna Liczba_ok traktowana jest jako byte. Jedynym sposobem na konwersję jednego typu na inny jest po prostu przypisanie go w ten...
Bo fusing robi stringa proszę szanownego kolegi:) To nie tędy droga...PS może nie zaokrąglanie a histereza?:)
Zjadłeś przedrostki &B przy wartościach bitowych jaki już z niepohamowaną determinacją chcesz takiego zapisu używać.
[syntax=basic4gl] $crystal = 4000000 Config Portb = &B11111111 Portb = &B11111111 Config Portd = &B1111100 Portd = &B1111111 Config Timer0 = Timer , Prescale = 64 Enable Timer0 Enable Interrupts On Timer0 Co1ms Dim Liczba As Single Dim Ktorywysw As Bit Dim Lol As Byte Dim Jednostki As Byte Dim Dziesiatki As Byte Dim Pomoc As Bit Dim Aaa As Word Dim...
No jak za każdym razem do licznika wpisujesz zero to jakim cudem ma być spełniony ten warunek timer1= A?
Zamiast dawać tyle ifów możesz dać jeden Select case - zobacz w Helpie jak on działa.
Cóż, opis działania rejestru przesuwnego jest w notach katalogowych i mówisz, że wiesz, jak to zrobić. Poszukaj o multipleksowaniu wyświetlaczy LED - w przypadku "zwykłych" diod zasada będzie ta sama.
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...
Ok po kolei, wywalam wszystko z programu, zostawiam tylko...... zmienna impulsy jest zwiększana o kilkanaście a nie tylko o jeden ............ Licz: If Scisk = 1 And Ok = 1 Then Incr Impulsy Elseif Scisk = 0 And Ok = 1 Then Decr Impulsy End If Return Kontaktron (Reed switch) generalnie jest stosowany jako proxy switch, czyli w ukladach statycznych....
Lcd "<- " ; Liczba_krokow ; " "
Funkcje wait (waitms) w BASCOM nie blokują i nie resetują watchdoga. Wyłączanie watchdoga w czasie odczekania może prowadzić do sytuacji, gdy wchodzące w tym czasie zakłócenie zablokuje nam na stałe procesor. Dlatego lepiej wstawić pętelkę z resetowaniem watchdoga i zostawić watchdog włączony: for i=1 to 3 reset watdog wait 1 next
Wystarczy wpisać warunek w dodatku prosty If I = 100 then stop timer1 I=0 timer1= 0 start timer1 end if a tutaj Kasowanie: stop timer1 I=0 Timer1 = 0 start timer1 Return W ogóle nie bierzesz pod uwagę z jaką częstotliwością będzie liczył licznik chyba potrzebujesz jakiś konkretny czas...
Ciąg "Timer0" faktycznie nie zmienia koloru, ale jest to tylko błąd kosmetyczny. Po kompilacji nie ma żadnych błędów, zaktualizuj sobie program do jakiejś nowszej wersji. A jeśli będą jakieś problemy, to polecam ręczny wpis do rejestrów licznika, z takimi "rzadziej spotykanymi" prockami zwykle są jakieś kwiatki :)
Przeorganizowałem twój kod z pierwszego postu bo w tym z dzieleniem i modulo to może działać ślamazarnie. Jeśli ci pasuje oczywiście. Licznik obsługuj w przerwaniu timera. A zmieniaj tylko wartość zmiennej za pomocą przycisków. To musisz sobie dopisać. Gdyby obliczenia w przerwaniu były za długie, przenieść je do głównej pętli, ale tutaj zawsze będzie...
E tam, nic strasznego.... Tu masz błąd: Dim U_wy As String * 2 Zwiększ to na: Dim U_wy As String * 3 I leci aż miło. Nie mieścisz się w zmiennej, that's all:) Poza tym skonfiguruj watchdog oraz TIMER. Pewnie jeszcze coś tam siedzi (wyświetlanie bez wymazywania poprzednich, większych o rząd wartości na przykład) ale to tak na szybko. Pozdrawiam, TD
Witam. Skoro nie masz źródeł to trzeba zrobić wszytko od podstaw. Ciężko będzie to zrobić bez licznika i motoru. Raczej trudna sprawa, chyba że trafisz na kogoś kto już coś takiego przerobił na swoje potrzeby.
Możliwe, że któryś skok do funkcji niepoprawnie powraca i przepełnia się stos, czego następstwem jest reset mikro kontrolera, prześledź miejsca gdzie wykonywane są skoki i zobacz czy są takie gdzie np wykonujesz skok i zamiast wrócić return to wykonujesz 2 skok.
Problemy: 1)Nie wiem czy tak ma być, ale nie ustawiłeś na PortB.1 stanu wysokiego, aby podciągnąć złącze. 2)Źle zagnieżdżone IFy. Powinno być: [syntax=basic4gl]Do If Pinb.1 = 0 Then Waitms 20 L = L + 1 If L = 3 Then Set Portb.2 End If If L = 6 Then Reset Portb.2 L = 0 End If End If Loop [/syntax]
Witam, Mam problem z zrealizowaniem za pomocą tylko jednego przycisku funkcji: naciskam - licznik zlicza w górę puszczam - licznik zatrzymuje się naciskam - licznik zlicza w dół puszczam - licznik zatrzymuje się itd... Męczę się nad PWM - regulacją podświetlania LCD, na atmega8, problemu nie widzę ze sterowaniem dwoma przyciskami, ale rozłożyłem się...
witam serdecznie zgłębiam tajniki elektrody bo wcześniej tylko ją czytałem. ale doszłem do tego jak sie obchodzić z nią . Powiemci że kilka prób potem poszłem na kega i karnołem sie na rajd nowy pomysł i sam napisałem i śmiga jak ulał. ale bardo dziękuje chętnie pomoge jak będe potrafił. tak tylko sie pomenczyłem 2 miechy ze sobą ale udało sie podrawiam
Już z tym też kombinowałem, ale nie wydaje mi się by było to "fachowe" rozwiązanie.. Kazde rozwiazanie z uzyciem 'Wait,' 'waitms' jest NIE-fachowe i bez sensu. Uzywasz calej mocy processora dla glupiej dyrektywy czekania. Malo tego, w tym czasie processor jest zajety wlasnie odliczniem tego czasu i nic wiecej nie moze robic, gdy tymczasem wbudowane...
Ja bym zasugerował przeniesienie tematu do odpowiedniego subforum.
...na tych przerwaniach to albo ie umię zrobić albo nida sie tego zrobić... Polecam notę aplikacyjną AN-115 na stronie firmowej Bascoma http://www.mcselec.com/an_115.htm. Opisane jest dokładnie to czego szukasz. Tak jak pisałem wcześniej: możesz zrobić to samo bez przerwań - sprawdzając stan portu w pętli. Jak się uprzesz, to można także czterokrotnie...
Może spłycę :) wypowiedzi przedmówców, ale w skrócie chodzi o to. 1. Wyświetlanie wszystkich 4-ech segmentów sterowanie jest tym samym portem, w tym przypadku P1 2. Tranzystory powodują po prostu dostarczenie napięcia do odpowiedniego segmentu. 3. Wysyłając jakiś sygnał na port P1, wysyłamy ten sam sygnał do wszystkich segmentów, a sterując odpowiedni...
Chyba nie.
na symulatorze nie masz co patrzeć. One są do niczego. Ok sprawdzę zaraz. Dodano po 18 ok sprawdziłem. Działa bez problemu. Sprawdzałem na płycie testowej a sygnał brałem z Timera2 skonfigurowanego jako PWM. Zmieniałem różnie Prescaler od 1 do 1024 i działało bez problemu.
Ja kończę drugą maszynkę cnc i nie przyszło mi nawet do głowy żeby liczyć kroki. Do wykonania dość łatwe, ale po co?
Timer0 jest 8-bitowy czyli pomiesci liczbę z zakresu 0-255, Timer1 jest 16-bitowy czyli pomiesci liczbę z zakresu 0 - 65535. Zapewne autorowi chodziło o to aby zrobić to na timerze 8-bitowym, ale Twoje obliczenia tez są dobre tylko dla Licznika/Timera1
Rozumiem, że nie istotne jest na którym miejscu te jedynki się znajdują ? Kod kolegi (at)nsvinc przetłumaczony na Bascom: [syntax=basic4gl]dim licznik as byte dim i as byte ... licznik = 0 for i = 0 to 7 if PINA.i = 1 then incr licznik end if next[/syntax] Sorry poprawiłem. Port jest liczony od 0 do 7 a nie jak wcześniej napisalem od 1 do 8 Jak widać...
Myślałem raczej o czymś takim: [syntax=basic4gl]Do Readeeprom Tablica(licznik) , Licznik Incr Licznik Loop Until licznik >12 [/syntax] :)
Jeśli by to nie przeszkadzało to możesz podpiąć kwarc zegarkowy, wtedy na 8 bitowych licznikach na pewno zliczysz sekundę:)
1 - doprowadź sygnały z czujników do trzech wejść jednego z portów 2- każdy z tych sygnałów doprowadź do wejścia przerwania INT0 ( odseparowane diodami lub przez transoptory np. CNY-17 ) Każde pojawienie się impulsu na jednym z wejść wyzwoli przerwanie INT0 W obsłudze przerwania sprawdzasz stan wejść i porównujesz z poprzednim stanem W zależności od...
3.Jakie kondensatory dać na zasilaniu i gdzie? Dział "Zasilanie i zakłócenia": http://mikrokontrolery.blogspot.com/p/sp...
Witam państwa na forum chciałbym stworzyć w Bascomie licznik który zlicza np: do 10 ale nieweim jak z konfigurowac wyswietlacz chodzi mi oto zeby w oknie symulacj na tym symulacyjnym wyswietlaczu że tak go nazwe wyświetlały sie liczby tyle jest tych konfiguracji jak czytam helpa ze juz zgłupiałem Pozdrawiam serdecznie.
Witam. Potrzebuję wykonać układ licznika obrotów wału silnika (poglądowy rysunek http://obrazki.elektroda.net/56_12518220... ) . Licznik musi zliczać obroty do przodu i do tyłu. O ile z samym liczeniem w jedną stronę i wyświetleniem wyniku nie mam problemu, o tyle nie wiem jak wykonać sekwencję zmiany kierunku liczenia. Domyślam się że trzeba to...
Przydał by się kod programu... Jeżeli wyłączasz timer to po jego ponownym włączeniu zaczynasz pewnie liczyć od 0 pomimo, że nie udało się doliczyć do potrzebnej wartości licznika. Ale to tylko przypuszczenia...
nie wiem czy o to chodziło bo nie mam na czym uruchomić tego programu (tzn. mam Bascom ale nie mam zestawu '51), ale wg mnie dopiero ten program zadziała: $crystal = 16000000 '$default Xram $large Dim Cyfra(12) As Byte Dim Jedn_sekund As Byte Dim Tempo As Byte Config Timer0 = Timer , Gate = Internal , Mode = 1 Th0 = &Hd8 ' Tl0 = &Hd7 ' =10025 cykli...
Pomyśl o tym, aby zapamiętywać stan poprzedni i inkrementować licznik jedynie w przypadku zmiany stanu.
Bardzo dziekuje za zainteresowanie ale to nie ma być prędkościomierz tylko licznik najprostrzy w swiecie licznik który ma czekać na impuls który zliczy .Zwarłem pinb.0 do masy zgodnie z sugestia i tez nic licznik dalej liczy (niewiadomo co). Może nie robic tego na timer-ach? .
Witam Zlece jak w temacie napisanie programiku (W gre wchodzi tylko bascom) do uniwersalnego licznika samochodowego. A wiec licznik bedzie wyswietlal kilka temperatur (czujniki to raczej ds-y) , kilka alarmow i zaleznosci moze jakis shift light no i oczywiscie obroty i predkosc. Wyswietlacz to wysw. graficzny 240x128 narazie jednokolorowy i to by bylo...
Niestety Kolego "elektronik.b" nie rozumiesz tego programu, wklepujesz co popadnie i to nie zadziała. Jak na początek przygody z mikrokontrolerami wybrałeś sobie FATALNIE napisany program... nie robi się multipleksowania w pętli głównej i to jeszcze odlicza interwały pauzami. Nawet jak w jakiś cudowny sposób ogarniesz wyświetlanie bez migania, to ten...
Witam, czy ktoś posiada działającą procedurę odczytu licznika z układu 1wire DS2423 w Bascom? Pozdrawiam Darek
Szczegóły masz na schemacie. Po uruchomieniu nadajnik wysyła dane licznika. Bascom ver. 2.0.7.5
Ależ głupi błąd zrobiłem, dałem te 11mln zlikwidowałem zwłokę i program działa tak jak zamierzałem, dzięki i pozdrawiam
Nie znam Bascoma, ale jeśli wartoscią początkową licznika jest 4096 dziesiętne czyli 1000 szestnastkowo, to bardzo dobrze! Nie musisz zmieniac wartości TL0, ponieważ w chwili przerwania przyjmuje odpowiednią wartość (00h). Trzeba tylko w ciągu najbliższych 256 cyklach wpisać do TH0 wartość 10h (16): MOV TH0,#10h. Ale nie wiem jak się robi "wstawki"...
Tylko mikrokontroler... bierzesz jakiś AVR... BASCOM + programator za grosze + 2 dni posiedzisz i sam to zrobisz... Prostsza plytka, tańsze, same korzyści... Pozdrowienia
nie czepiaj sie kompilatora bo to napewno nie tu tkwi przyczyna. Najlepiej jakbys dal na forum listing programu oraz napisal jak zrobiles ze przy wylaczeniu urzadzenia zapisujesz cos do eeproma.Masz jakis uklad wyczuwajacy zanik zasilania??czy raczej procesor jest caly czas zasilany i to on wylacza urzadzenie (czyli przechodzi w tryb standby).
Należy: - zadeklarować zmienną globalną np. LICZNIK i nadać jej wartość zera, - włączyć przerwania od przepełnienia Timer0, - w funkcji przerwania należy zwiększać wartość zmiennej LICZNIK o jeden Aby poznać liczbę impulsów wystarczy pomnożyć LICZNIK*256 i dodać do niego aktualną wartość rejestru licznika timera, czyli jak sądzę counter0 (nie znam BASCOM).
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...
Jak poprawnie skonfigurujesz to zadziała. Oczywiście sam licznik to nie wszystko, trzeba jeszcze ustawić port jako wyjście.
Jeśli nie potrzebny ci dokładny czas to zrób to na liczniku.
Jak przerwanie? To ma działać z automatu czy na przerwaniach? Bo jak na przerwaniach to musisz zerować w nim licznik, bo od ocr2b nie ma opcji ctc. Najlepiej zrób tak : ustaw licznik w tryb ctc i do ocr2a wpisz odpowiednią wartość skracającą cykl, do ocr2b wpisz dowolną wartość od 0 - ocr2a, ustaw bit COM2B0, włącz licznik z odpowiednim preskalerem....
Przerwanie miałbyś z częstotliwością 32000Hz(8000000/250), gdybyś tylko przeładowywał Timer w przerwaniu. [syntax=basic4gl] Prztimer1: Load Timer1, 250 '<----- w tym miejscu na przyklad Incr Licznik If Licznik > 100 Then Licznik = 0 End If[/syntax]
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 ??
Przeniosłem Temat był raportowany!
odpowiem sobie sam, sprawdzilem w symulatorze bascom i działa
Ustalasz długość odbieranych danych np. 2 bajty, wstawiasz licznik odliczający do 2 :) i łapiesz jeden bajt, potem drugi, Kasujesz licznik i od nowa :) wysyłasz następne 2 bajty itd. ...
Witam Patrz DEBOUNCE pin_portu , stan , etykieta w Help
Naprawdę nikt nie jest w stanie nic pomoc ? Miało by to mniej więcej wyglądać tak: -sygnał podawany na ICP ma postać kwadratową -zbocze opadające powoduje zapis wartości timera do rejestru sprzętowego -odejmując kolejne wartości rejestru od siebie uzyskuję czas jaki upłynął między impulsami -obliczając odpowiednio czas uzyskuję ilość impulsów na minutę
do mierzenia okresu sygnału najlepiej wykorzystać licznik i przerwanie zewnętrzne. Sygnał pomiarowy wzmocnić tak aby uzyskać przebieg prostokątny o stromym nachylaniu zboczy. Następnie podać sygnał na wejście przerwania zewnętrznego (np. detekcja zbocza 1->0). W przerwaniu włączyć licznik, wyjść z przerwania i oczekiwać na następne przerwanie w którym...
No tak to właśnie zrobiłem... No chyba nie bardzo :D Przetestuj ten kodzik :D [syntax=vbnet]$regfile = "m32def.dat" $crystal = 16000000 Config Submode = New Config Lcd = 20 * 4 Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Porta.0 , Db6 = Porta.1 , Db7 = Porta.2 , E = Portb.3 , Rs = Portb.4 Config Pind.2 = Input : Set Portd.2 : Ok Alias Pind.2 Config...
Można też skorzystać z Watchdoga i co jakiś czas po prostu nie zresetować jego licznika.
Jeśli wyeliminujesz drgania przycisku, to najprościej to zrealizować podając wyjście przycisku na wejście zegarowe jednego timera (bedzie on zliczał ilość wciśnięć), a drugi timer wykorzystać do odmierzania czasów 1s - dokładnie co 1 s należy kasować licznik pierwszego timera. Ot i wszystko.
A masz tyle?:>
Temat ciekawy. Nie mam "gotowca" ale potrzebujesz zmienne: "Licznik" - ilość odczytów napięcia "Nap" - odczytane napięcie "licznik_zmian" "Wartosc" - 0 - gdy "Nap"<0,4V albo 1- gdy Nap>0,65V "wartosc_pop" - wartość z poprzedniego odczytu Licznik =0 Do ' pętla główna incr licznik call Odczyt_nap ' skok do procedury odczytu nap call sprawdz ' sprawdzenie...
a instrukcje start timer1 i stop timer1? to tak najprościej, bo wogóle to to można zrobić na timerze0, przerwaniu i jednym liczniku programowym...
Źle, w skrócie powinno być tak: jeśli wiatr_ena = 0 wtedy poczekaj 25 ms (eliminacja drgań styków) jeśli wiatr_ena = 0 wtedy pętla wyjście z pętli kiedy wiatr_ena=1 (czekanie na PUSZCZENIE przycisku koniec petli reszta Twoich instrukcji warunkowych endif endif
super jest, tylko w atmedze 32 mam 2 przerwania zewnerzne, ale korzystam juz z nich i nie moge tego zrobic w ten sposob :( jakies inne pomysly?
Cześć. Przeglądałem archiwum ale nic dla siebie konkretnego nie znalazłem. Mam problem z programem (konfiguracją przerwań). Chciałem wykonać mały i prosty licznik obrotów. Wykonałem przetwornik obrót/impulsy na diodach, zakładam że nie występują w nim "drgania styków" :) Otrzymany sygnał chciałem podać na wejście INT0 i za pomocą Timera zliczać pojawiające...
masz cos tak jak kursy do bascoma, tam masz jak zrobic licznik na timerze. Pozatym masz dobra ksiazke i helpa
a może odczytać zawartosc liczników i zbadać czy sie zmieniła ich wartosć?
Witam mam taki mały problem.Chodzi o to że mierzę dwie częstotliwości przy pomocy liczników w określonym czasie. Odczyt i pomiar mi działa. Problem w tym że te wartości nie są idealnie stabilne.Interesuje mnie ich wzajemne porównanie coś jak przełożenie przekładni. Pytanie jak teraz sensownie wyznaczyć średnią aby określić te przekładnie. Chodzi mi...
Bascom jeszcze nie obsługuje PWM w Timer0 z poziomu CONFIG. Trzeba skonfigurować "ręcznie" przez bezpośrednią modyfikację rejestrów sterujących licznika. :(
Zrób tak: 1 licznik do odmierzania czasu, przerwanie co np 25ms 2 licznik do zliczania impulsów Jeżeli nastąpiło przerwanie np 25ms, to zlicz liczbę impulsów. W taki sposób masz dokładniejsze odmierzanie czasu, funkcja wait do tego się nie nadaje. Przeanalizuj sobie ten temat: http://www.elektroda.pl/rtvforum/topic16... a potem dodaj to co napisałeś...
a dlaczego uwazasz ze zapisywanie po wylaczeniu jest niemozliwe? Wystarczy dodac kondensator wiekszy na zasilaniu mikrokontrolera i zrobic wykrywanie przez niego zaniku napiecia. (oczywiscie na zasilaniu a nie na tym kondensatorze, bo wtedy juz po ptakach)
No to kawa na ławę. Instrukcja Getrc5 w czasie działania używa jest licznika TIMER0 i związanego z nim przerwania. Licznik ten jest służy do generacji wymaganych opóźnień podczas próbkowania sygnału. TIMER0 może być dalej używany przez program, lecz należy się liczyć z wynikłymi opóźnieniami, gdy wykonywana będzie funkcja GETRC5(). Jest tylko jeden...
Poi pierwsze. Do BASCOM-a jest pomoc - także po polsku, której to zresztą jestem autorem. Wersję on-line (beta) znajdziesz na mojej stronie WWW. Jak one działają? Zliczają impusy. Albo z prescalera, albo z zewnątrz. Patrz nota katalogowa. W którą stronę zliczają? Zwykle liczą w górę. W trybach PWM liczą też w obie strony. Patrz nota katalogowa. Jak...
Z jaką znowu biblioteką? RC5SEND jest w kompilatorze jako code template a nie w bibliotece i zmienić się jej nie da. RC5SEND korzysta z 16-bitowego licznika TIMER1, którego to ATtiny45 nie posiada . Ma tylko dwa 8 bitowe liczniki. Rozwiązanie jest i to na forum MCS Electronics. Poszukaj!
D la AVR - ów sa dostępne komendy getRC5 i sendRC5. W czasie działania funkcji używany jest licznik TIMER0 i związane z nim przerwanie. Polecam lekture helpa dla bascom basic avr. Help jest dostepny na forum i na stronie www.edw.com.pl Nie wiem czy są takie układy, ale zawsze można coś wykombinować podłączając MAX232 i jakiś procek który zajął by się...
Impulsy pobieram przy liczniku z kabelka który wg "Sam naprawiam ..." pochodzi od czujnika drogi umieszczonego przy skrzyni. Do zliczania impulsów wykorzystałem timer0 (oczywiście znalazłem przykład), który liczył i podbijał mi zmienną. Zrobiłem 10 km i sprawdziłem wynik. Było 5150 więc podzieliłem aby zamienić na m i wyszło 5,15 Nic mi się nie zgadza...
Witam , Uruchomiłem już pomiar na ADC , mam pomiar napięcia i natężenia, na wyświetlaczy wyświetla mi moc pobieraną. Pomiary wykonywane są 50 razy i wyświetlana jest średnia tych pomiarów. Moje pytanie jest następujące chciałbym sumować pobraną moc zrobić taki licznik kilowatigodzin z funkcją resetu i czasem w jakim została energia wyprodukowana, czy...
Niestety nie. Można się o tym przekonać studiując notę katalogową. Prescaler jest ustawiany dla całego licznika ten sam. Mówiąc bardzo prosto jest do dzielnik częstotliwości który dzieląc systemowy sygnał zegarowy obniża częstotliwość sygnału zegarowego podawanego na licznik.
W Bascomie nóżki konfiguruje się przez Config Portx = input/output - dla całego portu Config Pinx.y = input/output - dla jednej linii Sugerowałbym zatrzymać licznik przed załadowaniem do niego wartości. W nocie można znalźć info, że mogą pojawić się przypadkowe wartości w rejestrach przy zapisie na pracującym liczniku.
Na procu jest uruchomiony miernik częstotliwości (stacjonarny). Wykorzystane są dwa 16bitowe timery, uruchomiona jest komunikacja po rs232, zegar czasu na PCF8583 z podtrzymywaniem bateryjnym. Nie bardzo wiem jak to wszystko przełożyć na BASCOM AVR. Na początek spróbuj uruchomić przerwania oraz timer0 w trybie normalnego licznika - tak aby liczył z...
Witam jest dość początkującym w dziedzinie programowania i potrzeba mi połączyć tak aby na jednym wyświetlaczu pojawił sie zegar i licznik impulsów z halotrona jako obrotomierz zegar: $regfile = "m8def.dat" 'informuje kompilator o pliku 'dyrektyw mikrokontrolera $crystal = 8000000 'informuje kompilator 'o częstotliwości oscylatora 'taktującego...
witam ! niezgodność: Dim Jednosc As Byte Jednosci = Licznik Mod 10
$regfile = "m8def.dat" $crystal = 8000000 Config Portd = 255 Portd = &B11111111 Config Portb = &B11111100 Portb = &B01111111 Eedr = 0 Do Debounce Pinb.0 , 0 , Zliczacz , Sub Loop End Zliczacz: Incr Eedr If Eedr > 9 Then Eedr = 0 ' TU ZMIEŃ WARUNEK NA BARDZIEJ OSTRY Portd = Lookup(eedr , Zam) Return Zam: Data...
Co można z tego zrobić: Zegarek, wyświetlacz jakichś liczb, minutnik, licznik impulsów, prędkościomierz do roweru, obrotomierz... Jak: Poszukaj o programowaniu procesorów AVR (przez ISP), dokumentacja ATTiny2313, języki C, BASCOM
Generalnie wyświetlacze LCD, zwłaszcza te zgodne z HD cośtamcośtam można bardzo łatwo obsłużyć programowo. Dla przykładu, program realizujący zadanie z tego tematu zająłby z 15 linijek w Bascom :)
no przyznam że układ niepraktyczny. po co komu licznik osób...? nie lepiej zrobić na jakimś małym atmelu?? w bascomie można się pobawić. program piszemy w 10 min. i po sprawie. dodatkowo dodajemy drugą wiązke... mamy zliczanie osób wchodzących i wychodzących z możliwością włączania i wyłączania np. światła. mnie by się nie chciało robić takiego "skomplikowanego"...
Czym większa częstotliwość sygnału tym mniejszy dzielnik dla licznika to jedno . Rozdzielczość pomiaru jest proporcjonalna do stosunku częstotliwości taktowania mikrokontrolera a odwrotnie proporcjonalna do częstotliwości przebiegu. Jednym słowem żeby się trzymać cały czas w jakimś zakresie dokładności i rozdzielczości w pomiarze trzeba zmieniać częstotliwość...
Dokładnie tak samo jak w przypadku TIMER1: CONFIG TIMER3 = PWM , PWM = 8 | 9 | 10 , PRESCALE = 1 | 8 | 64 | 256 | 1024 , COMPARE A PWM NO_OUTPUT ] = CLEAR UP | CLEAR DOWN | DISCONNECT , COMPARE B PWM NO_OUTPUT ] = CLEAR UP | CLEAR DOWN | DISCONNECT Licznik TIMER3 jest dokładną kopią licznika TIMER1 zatem wszystkie opcje jak i nazwy rejestrów są takie...
Witam Po ustawieniu czasu musisz go pomnożyć przez 0.03 (30%). Poźniej dajesz warunek IF Stan licznika = Wynik mnożenia then port 1.7 = 1. Pozdrawiam
Kasować licznik- a nie przerwania- na początek. Kasować licznik i musisz zastosować dwie flagi, inaczej nie da rady. Jedna sprawdzająca czy już możesz odczytać dane, drugie sprawdzająca czy już możesz wysłać żądanie odczytu:)
Możesz podłączyć poprzez rezystory bezpośrednio do portów, tylko trzeba pamiętać, że diody mogą wziąć 20mA i to teoretycznie pin ma wytrzymać, ale też chyba nie można brać więcej niż 100mA na cały port. To tyle teorii a w praktyce to sam sprawdzisz i pewnie procek to zniesie. Wprowadziłbym jednak pewna optymalizację. Wyświetlacze podłącz do portów PB...
W trybie 1 jest 16-bitowy, liczy od zadanej mu wartości do 65536, następuje przerwanie od przepełnienia licznika, coś wtedy może zrobić w obsłudze tego przerwania i ponownie zaczyna zliczać od zadanej mu wartości lub od zera jak mu nie zadasz.
(może mi odbije ;) ) Albo się napiję! ;) Tylko wtedy licznik będzie średnio działał, wydaj mi się że w Gdyni jest co najmniej jeden bascomowiec, który skutecznie zapcha pamięć i ram procesora mniej lub bardziej tandetnym kodem. Bascom Rulessss! ;)
Jeszcze lepsze byłoby wykorzystanie trybu CTC (Clear Timer on Compare match) - gdzie licznik jest kasowany po stwierdzeniu równości między rejestrem porównania a zawartością licznika... Warto zajrzeć do help'a BASCOMa, oraz noty katalogowej mega32 - tam większość spraw jest wyjaśniona. Również na Elce temat był parę razy poruszany...
Musisz zaznaczyć cały tekst który chcesz pokazać jako kod, a następnie zaznaczyć napis Code $regfile = "attiny2313.dat" $crystal = 8000000 'kwarc 1MHz $prog &HFC , &HE4 , &H9F , &H00 ' generated. Take care that the chip supports all fuse bytes. Config Timer1 = Timer , Prescale = 64 'timer1 jako licznik 15536 Config Int0 = Rising 'detetor zera...
licznik bascom licznik obrotów bascom licznik minut bascom
licznik otwarcia drzwi tuleja głowicy shure uszkodzony
wiertarka celma kondensator lenze naprawa
Jak wyczyścić bęben światłoczuły w Samsung CLP-320? Firmware for F&U FLA4320UH Android TV, Main Board 17MB170