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...
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.
Bo fusing robi stringa proszę szanownego kolegi:) To nie tędy droga...PS może nie zaokrąglanie a histereza?:)
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...
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?
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...
...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...
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....
Zamiast dawać tyle ifów możesz dać jeden Select case - zobacz w Helpie jak on działa.
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...
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
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 :)
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...
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...
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.
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
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]
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.
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.
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.
Szczegóły masz na schemacie. Po uruchomieniu nadajnik wysyła dane licznika. Bascom ver. 2.0.7.5
Jeśli by to nie przeszkadzało to możesz podpiąć kwarc zegarkowy, wtedy na 8 bitowych licznikach na pewno zliczysz sekundę:)
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
Chyba nie.
Myślałem raczej o czymś takim: [syntax=basic4gl]Do Readeeprom Tablica(licznik) , Licznik Incr Licznik Loop Until licznik >12 [/syntax] :)
Jeśli nie potrzebny ci dokładny czas to zrób to na liczniku.
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...
Witam Patrz DEBOUNCE pin_portu , stan , etykieta w Help
Można też skorzystać z Watchdoga i co jakiś czas po prostu nie zresetować jego licznika.
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ę...
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...
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
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...
Pomyśl o tym, aby zapamiętywać stan poprzedni i inkrementować licznik jedynie w przypadku zmiany stanu.
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.
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....
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...
NOUKI przeglądałem odnośnik - dzięki . Kombinuje maszyne do ciecia przewodów czyli : zadaje długość np. 10,5cm i po odmierzeniu "maszyna" ma uciąć ten przewów . Przesów drutu realizuje na siłniku prądu stałego z przekladnią (wiem że łatwiej by bylo na silniku krokowym )ale mam gotową przekłanie na silniku dc . pomiar przesuniecia przewodu - dioda-fototranzystor...
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.
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ść...
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...
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...
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]
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ć...
Witam, czy ktoś posiada działającą procedurę odczytu licznika z układu 1wire DS2423 w Bascom? Pozdrawiam Darek
Oczywiste że tak zawsze będzie. Tym licznikiem możesz liczyć tylko impulsy które są ukształtowane np z enkoderów, natomiast dla styków mechaniczynych musisz albo je ukształtować sprzętowo, albo zrobić debouncing programowy. Chodzi o to, aby z sieczki krótkich impulsów które powstają po wciśnięciu przycisku zrobić jeden impuls wydłużony. Można to zrobić...
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).
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...
Ja bym zasugerował przeniesienie tematu do odpowiedniego subforum.
Jak poprawnie skonfigurujesz to zadziała. Oczywiście sam licznik to nie wszystko, trzeba jeszcze ustawić port jako wyjście.
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. ...
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.
Tylko mikrokontroler... bierzesz jakiś AVR... BASCOM + programator za grosze + 2 dni posiedzisz i sam to zrobisz... Prostsza plytka, tańsze, same korzyści... Pozdrowienia
Wiec tak też jestem początkujący, właśnie częściowo też korzystam z tego programu. Udało mi sie zrobić z niego właśnie zwykły licznik impulsów. Generalnie to brak w tym kodzie jest obsługi wyświetlacza LCD, jak sam widzisz nie jest skonfigurowany gdzie jakie porty procka maja nim sterować , jest niekompletna konfiguracja Timer1.To tyle czego brak na...
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...
3.Jakie kondensatory dać na zasilaniu i gdzie? Dział "Zasilanie i zakłócenia": http://mikrokontrolery.blogspot.com/p/sp...
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?
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...
Wszystkie zmienne programu są przechowywane w RAM. Kod inkrementacji czasu jest błędny - instrukcje If powinny być skaskadowane - nie ma sensu sprawdzać, czy minuty doliczyły do 60, jeśli wcześniej nie zwiększałeś licznika minut.
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...
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.
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...
Dzięki za przykład i zainteresowanie. Poradziłam sobie na prostych działaniach. Pierwszy poziom menu to jedności, drugi dziesiątki itd... Klikam MENU, wybieram funkcję, klikam OK. OK mnoży wartość x10, BACK dzieli wartość /10 Potem select case i wykonaj to co w case. MENU zeruje licznik. Pozdrawiam.
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...
Czyli bardziej taki komputerek podkładowy, bo licznik, jak sama nazwa wskazuje, liczy impulsy, ew. prędkość.
witam ! niezgodność: Dim Jednosc As Byte Jednosci = Licznik Mod 10
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"...
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...
$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...
Proszę czytać ze zrozumieniem. "Uwaga! Instrukcja SOUND nie jest przeznaczona do generowania przebiegów o określonej częstotliwości. W tym celu najlepiej użyć przerwań jednego z sprzętowych liczników."
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...
juz to robie w inny sposob, ale teraz mecze sie nad czyms innym... chce zrobic licznik impulsow zewnetrznych, na timerze 1 ale nie za bardzo chce mi to wyjsc... po prostu program nie chce wejsc mi w przerwanie :( czy moglby mi ktos napisac co powinienem ustawic poza: config Timer1 = timer, prescale = 1 set (pin tam gdzie jest t1) (pin gdfzie...
a może odczytać zawartosc liczników i zbadać czy sie zmieniła ich wartosć?
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).
odpowiem sobie sam, sprawdzilem w symulatorze bascom i działa
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ę...
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!
Bascom jeszcze nie obsługuje PWM w Timer0 z poziomu CONFIG. Trzeba skonfigurować "ręcznie" przez bezpośrednią modyfikację rejestrów sterujących licznika. :(
Przeniosłem Temat był raportowany!
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...
masz cos tak jak kursy do bascoma, tam masz jak zrobic licznik na timerze. Pozatym masz dobra ksiazke i helpa
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 ??
Ź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
Możesz do przełączania wykorzystać multiplekser komparatora analogowego i zliczać impulsy z wyjścia komparatora. Ale skoro masz sygnały tylko o fmax 5 kHz to może prościej samplować programowo te 6 wejść (a nawet 8), potrzebujesz w tym celu przerwania z częstotliwością tylko 10 kHz, co nawet poczciwa M8 uciągnie. Z drugiej strony dlaczego nie wziąć...
Musisz się troche porozglądać :P Zobacz co tam pisze [syntax=vbnet]ldi r21,26 ; 26 bytes [/syntax] Czyli wysłane będzie 26 bajtów, jak dopisałeś jakiś swój to powienieneś ten licznik też zwiększyć.
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ę
"Config Timer1 = Timer , Prescale = 8 , Compare A = Toggle , Clear Timer = 1" Przy tej konfiguracji to chyba nigdy nie wejdzie w przerwanie od Timer1. Gdy osiągnie Compare1a = 600 to dzięki poleceniu Clear Timer = 1 licznik zostanie wyzerowany. A przerwanie Poz: jest uruchamiane dopiero po przepełnieniu licznika. Ale ja nie mam zaufania do konfiguracji...
Chodzi o to, że timer ustawiasz aby co pewien odcinek czasowy skakał wywoływał przerwanie, w którym możesz umieść np. liczniki programowe do odliczania opóźnień. W temacie http://www.elektroda.pl/rtvforum/topic22... jest programik, który po analizie powinien Ci trochę rozjaśnić przerwania, liczniki, itp....
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...
Wystarczy ustawić sprzętowe przerwanie int0 np narastającym zboczem kanału A - w momencie przerwania sprawdzić stan kanału B enkodera i stosownie do jego stanu zmniejszyć lub zwiększyć stan licznika o 1.
Potrzebuję napisać licznik impulsów w Bascom 89cx051 o następujących parametrach: Wprowadzam ilość impulsów za pomocą trzech klawiszy (pierwszy klawisz ustawia pozycję nad liczba która będzie zmieniana, drugi i trzeci służą do zmiany góra-dół), po ustawieniu odpowiedniej liczby (maksymalnie 7 cyfr), wciskam czwarty klawisz (start) w tym monecie na wyjściu...
A masz tyle?:>
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
Niestety ja tu nic nie poradzę bo nie bawiłem sie w bascomie w capture. 1) Sygnał do licznika może pochodzić z nóżki albo z wewnętrznego komparatora. Więc trzeba jakoś wybrać nóżkę i ustawić ja na input. 2) Najpierw skonfiguruj swój timer tak jak niżej, bo to musi być COUNTER a nie TIMER: Config Timer1 = Counter , Edge = Falling , Capture Edge = Falling...
podłączyć trymer do kwarcu przey kwarcu są dwa kondensatorki trymer zamiast jednego z nich??? i oczywiście do masy mówimy o atmedze i o liczniku nie pcfie jaki jest wpływ tych kondensatorków na licznik???
To nie kwestia taktowania. A sposobu w jaki piszesz program. Instrukcji typu wait należy unikać. Przecież procesor w czasie tych twoich ponad 2secund nic nie robi tylko czeka. A to marnotrawstwo. Jak już powiedziałem zapoznaj się z licznikami timerami.
bascom licznik licznik obrotów bascom licznik minut bascom
rejestrator pobór energia zaciskać linek kondensator spawanie
ciśnienie wtryskiwaczy generator synteza
Obciążalność portów mikrokontrolera ATmega32 Dane techniczne wzmacniacza Continental Edison PA9909