Chyba najprostszy jaki można napisać. Dim Wynik As Long Config Timer0 = Counter , Edge = Rising Do Timer0 = 0 Start Timer0 Wait 1 Stop Timer0 Wynik = Timer0 * 50 'to przykład może być *50,20,1... Locate 1 , 1 Lcd Wynik Locate 1 , 5 Lcd "rpm" Loop End
no raczej działa nawet w następnych cyklach. sprawdz jeszcze to $regfile = "m8def.dat" Config Pinb.1 = Output $crystal = 1000000 Config Timer1 = Timer , Prescale = 64 Config Timer0 = Counter , Edge = Rising On Timer1 Odmierz_1s Dim Licz As Byte , I As Byte Enable Interrupts Enable Timer1 Start Timer1 Timer1 = 65535 - 15625 Do Loop End Odmierz_1s:...
Witam. I przystępuję do rzeczy :wink: Config Timer0 = Counter = Internal , Mode = 1 Co to jest za tryb :?: Chcesz zliczać impulsy na P3.4 czy cykle maszynowe :?: Load Timer0 , S Ta instrukcja nie spowoduje przepełnienia sie T0 po 5000 taktach ale po 34696 ,ponieważ załaduje rejestry TL0 i TH0 wartością 120(Hex 78 ) gdyż stosowana jest tylko w trybie...
Do Config Timer0 = Counter dopisz jeszcze EDGE = RISING | FALLING w zależności czy ma być zliczane zbocze rosnące czy opadające. Trzeba dopisać też Enable Timer0 i Enable Interrupts [...] Config Timer0 = Counter, Edge = Falling Enable Timer0 Enable Interrupts [...]
Pozmieniałem troche program ale nie działa prawidłowo prędkość strasznie skacze od 0 do 240 km/h -bo nie zerujesz co 1 sec. licznika impulsów (Timer0), ponadto ,masz zbyt duży błąd zaniżając zakrses zmienmnej "Licz" - as byte Porównaj: $regfile = "2313def.dat" $crystal = 8000000 Config Lcdbus = 4 Config Lcd = 16 * 2 Config Lcdpin = Pin ,...
Dzieki za pomoc :) Dla potomnych cytat z manuala: CONFIG TIMER0 = COUNTER , EDGE = RISING | FALLING Kiedy TIMER0 jest skonfigurowany do pracy w charakterze licznika (parametr TIMER0 = COUNTER) wtedy należy określić parametr EDGE: Można określić czy licznik będzie zwiększany wraz z pojawieniem się narastającego zbocza sygnału (RISING) lub opadającego...
T0 to jak dobrze się domyśliłeś to TIMER 0 który liczy impulsy skonfigurowany tak: Config Timer0 = Counter , Gate = Interial , Mode = 2 chętnie przyjmę sugestie co do ustawienia a ma tylko liczyć impulsy zmienna Dim wynik As Word Wynik = Counter0
Tutaj masz listing który będzie współpracował ze schematem który zamieściłeś. Kiedyś takie coś robiłem i do 100kHz chodziło na pewno. Dopasujesz to tylko do swoich potrzeb, ale na razie to załaduj i zobaczysz co będzie. I to wszystko na jednym liczniku się robi. '********Pomiar czasu trwania impulsu ujemnego przebiegu prostokątnego i częstotliwości*********...
Podejrzewam że jak dałeś "Start Timer0" to Bascom "olał" ustawienie "Config Timer0 = Counter , Edge = Rising " i zaczął liczyć. Ale nie sprawdzałem-sprawdź sam.
Jeżeli sprawdzasz przycisk podłączony do masy, to czemu przerwanie Timer ma być wyzwalane zboczem rosnącym ? Config Timer0 = Counter , Edge = Rising
nie no to jasne ... jak coś komuś nie wychodzi to na bank wina Bascoma ... tylko ze jak ma liczyć impulsy to ma być skonfigurowany jako licznik COUNTER a nie jako czasomierz TIMER czyli nie CONFIG TIMER0 = TIMER , PRESCALE= 1 | 8 | 64 | 256 | 1024 tylko CONFIG TIMER0 = COUNTER , EDGE= RISING | FALLING
dlaczego resetuje mi zmienną L do zera po zliczeniu 256 impulsów przez taimer0 L = L + counter0 Chciałbym zliczyć wszystkie impulsy prosze o pomoc jakim kodem zliczyć np 10000 impulsów z timer0 = counter
CONFIG TIMER0 = COUNTER , EDGE = RISING | FALLING W twoim wypadku edge=falling najlepiej ściągnij sobie helpa ze strony mcselec.com jest tam wersja po polsku i jest nieźle opisane jak konfigurować wszystkie peryferia
Musze zaprogramować w Bascomie AT89C2051 Jak to zrobic ? i czy da rade pod XP tego dokonac ? Config Timer1 = Timer, Gate = Interial, Mode = 1 Config Timer0 = Counter, Gate = External, Mode = 1 On Timer0 Frequency Enable Interrupts Enable Timer0 Enable Timer1 Start Timer0 Start Timer1 pzdr. A.
int0 i int1 a może jakiś kawałek programu bo sam się raczej nie połapie. coś mam ale oczywiście złe ;/ $regfile = "m8def.dat" $crystal = 1000000 Dim W As Word Config Timer0 = Timer , Prescale = 1 Config Timer1 = Timer , Prescale = 1 W = Timer1 Timer1 = W W = Timer0 Timer0 = W Config Timer1 = Counter , Edge = Falling Config Timer0 = Counter...
Np. timer1 konfigurujesz tak aby odliczał 1 msek (a nie 1sek ). W czasie pomiędzy jednym int0 a drugim zliczyłeś wystąpienie 1251 razy timer1 1000/1251 = 0,79936 Hz Jednak dla większych częstotliwości musisz użyć poprzedniej metody (timer0 = counter...)
No właśnie Atmega8 ma dwa timery, na nóżce 6 i 11mozna zliczac impulsy, a w dokumentacji czytamy: Two 8bit counters One 16bit counter Czyli ten trzeci na której nóżce moze zliczać? Normalnie sie go używa jak innych? Config Timer0 = Counter , Edge = Rising Config Timer1 = Counter , Edge = Falling Wystarczy wpisac? Config Timer2 = Counter , Edge = Rising...
mam 90s8515 zrobiłem prostylicznik podaje na b0 to jest T0 impulsy i nic nie zlicza może pomożecie $regfile = "8515def.dat" $crystal = 8000000 Dim C As Word Config Timer0 = Counter , Edge = Rising Tcnt0 = 0 Do Print Tcnt0 Loop :roll:
dokładnie to o to mi chodzi żeby ten kod zadziałał, analogiczny w asm też nie działa, a właściwie działa tak samo i nie wiem bardzo dlaczego?? 'Timer1 dzia OK, ale timer0 zamiast zliczać p3.4 tylko się tym portem bramkuje??? $sim Config Timer1 = Timer , Gate = Internal , Mode = 0 Config Timer0 = Counter , Gate = Internal , Mode = 1 ' wstawilem też external...
Mam prostokąt (PWM) na timer1. Czy zliczać Timer1 czy Timer0? Timer ma być ustawiony na time czy counter. Wydaje mi się że najlepiej byłoby ustawić na zliczanie impulsów czyli counter i po odliczeniu 59 zatrzymać Timer1 na czas 1 lub 2 impulsów. Wszystko OK ale nie udaje mi się to w praktyce. Albo nie generuje nic, albo nie zatrzymuje po odliczeniu....
a ustawiłeś Fuse Bity?? Bo jeśli nie masz ustawionych to ATmega pracuje z częstotliwością 1MHz. Musisz ustawić Fusy na albo 8MHz na wewnętrznym generatorze albo ustawić Fusy na zewnętrzny kwarc. i mniej więcej kod by tak wyglądał: $regfile = "m8def.dat" $crystal = 8000000 Cursor Off Dim Czestotliwosc As Long Const Licznik = 22336 Config Timer1...
Witam mam prosty program. Timer zlicza naciśnięcia przycisku. Problem polega na tym że po jednokrotnym naciśnięciu wartość zwiększa się o jakąś ilość (nie zawsze o 1). Jak temu zaradzić? np. żeby zmiana stanu licznika była możliwa tylko co określony odcinek czasu. [syntax=basic4gl]Config Pinb.0 = Input Set Portb.0 Config Timer0 = Counter , Edge = Falling...
zrobilem ukladzik na atmedze32 z zew. kwarcem 4MHz - czy mam dobrze ustawione fusebity??(patrz. okienko programu ISP Programmer) mam jeszce pytanie odnosnie timerow wewnetrznych - czy ustawia je sie fusebitami czy w kodzie programu?? teraz mam tak ustawione: Config Timer0 = Counter , Edge = Rising Config Timer1 = Timer , Prescale = 64 a ptrzebuje, zeby...
Witam Jak odczytac dokładną wartośc z Timer0 (liczbę wszystkich impulsów), teraz zmienna A zbiera tylko same przepełnienia. [syntax=vbnet] $crystal = 8000000 config pind.4=input ' Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.5 , Rs = Portc.4 Config Lcd = 20 * 2 Cls Cursor Off Noblink Dim A As Single...
regfile = "2313def.DAT" $crystal = 11059200 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.5 , Db5 = Portb.4 , Db6 = Portb.3 , Db7 = Portb.2 , E = Portb.6 , Rs = Portb.7 'Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.1 , Db6 = Portb.0 , Db7 = Portd.6 , E = Portb.3 , Rs = Portb.4 Cursor Off Config Pind.6 = 1 Config Pind.0 = 0 Portd.0...
Config Timer0 = Timer , Gate = Internal , Mod = 2 GATE ??? Syntax CONFIG TIMER0 = COUNTER , PRESCALE= 1|8|64|256|1024 , EDGE=RISING/FALLING , CLEAR TIMER = 1|0 CONFIG TIMER0 = TIMER , PRESCALE= 1|8|64|256|1024 Jednosci = Licznik Mod 10 Jednosci - byte Licznik - word ........ = nie da rady
na bascomie sie za dobrze nie znam, timery mam juz wykorzystane w programie tak: Config Timer0 = Counter , Edge = Rising Config Timer1 = Timer , Prescale = 64 Config Timer2 = Timer , Prescale = 1 napisales by ustawic timer tak by odliczal sekunde ale nie wiem jak to zrobic(?) i dlatego nadal szukalem prostszego rozwiazania... moze da sie cos wykompinowac...
TAK. To prawda... W helpie napisali, że na timerze0 nie ma opcji PWM Action Configure TIMER0. Syntax CONFIG TIMER0 = COUNTER , PRESCALE= 1|8|64|256|1024 , EDGE=RISING/FALLING , CLEAR TIMER = 1|0 CONFIG TIMER0 = TIMER , PRESCALE= 1|8|64|256|1024 Ale po podstawieniu zadziałało. Swoją drogą szkoda, że nie dopisali "wyjątków" do helpa Co do ryb, to nie...
Idę w jakimś kierunku czy zacząć od nowa ? $regfile = "attiny13.dat" $crystal = 10000000 $baud = 19200 $hwstack = 32 $swstack = 10 $framesize = 40 Config Timer0 = Counter , Edge = Rising Dim A As Byte Enable Timer0 While Pinb.0 = 0 : Wend Timer0 = 0 Start Timer1 While Pinb.0 = 1 : Wend Timer0 = A Stop Timer1 If A < 100 Then Set...
Masz rację ,kod wyglądał tak : Dim Wynik As Long Dim Wynik1 As Long Config Timer0 = Counter , Edge = Rising Config Timer1 = Counter , Edge = Rising Config Portb.1 = Input Config Portb.0 = Input Portb.0 = 1 Portb.1 = 1 Cursor Off Cls Do Timer0 = 0 Timer1 = 0 Start Timer0 Start Timer1 Waitms 500 Stop Timer0 Stop Timer1 Wynik = Timer0 * 30 Wynik1 = Timer1...
Dzieki wszystkim za zainteresowanie. Poszperałem wczoraj wieczorem i znalazłem że w mode=1 wartość ładuje się instrukcją 'counter [0,1]=wartość lub jak koledzy napisali np. tl0=&h5f th0=&h45, a load działa tylko w mode=2. Mam nowe pytanie przy kofiguracji takiej: Config timer0=counter , gate=internal , mode=1 powinien zliczać impulsy podawane na pin...
To zmienia moją koncepcję :( obecnie mam ustawione tak: Timer1=Timer (odlicza mi jedną sekundę) Timer0=Counter (zlicza mi impulsy). Chciałem dodać do tego programu zegar z datą, ale wydaje mi się że sekunda z Timera1 na kwarcu 4Mhz nie jest zbytnio dokładna. Może jakaś podpowiedź jak najprościej przerobić program żeby mieć ten zegarek? (chciałbym użyć...
witam! mam taki problem: chcę zliczać zewnętrzne impulsy, timer mam skonfigurowany w taki sposób: config Timer0 = counter, edge = falling, noice cancel = 1, na portd.4 mam ustawiny wewnętrzny pull-up i dodatkowo zewnętrzny rezystor podciągający 4,7k.do masy kondensatorek 100 nF. Licznik oczywiście mi liczy ale zlicza też przypadkowe impulsy. widać to...
Może coś takiego $crystal = 11059200 Dim Czestotliwosc As Long 'w twoim przypadku może być Byte Const Licznik = 22336 ' aby Timer1 przepelniał sie co sekundę Config Timer1 = Timer , Prescale = 256 Config Timer0 = Counter , Edge = Falling On Timer1 Czas 'On Timer0 Zlicz Enable Interrupts Enable Timer1 'Enable Timer0 'Pomiar czasu Counter1 = Licznik Cls...
Zaglądając do dokumentacji mikrokontrolera i wybierając jedną z dwóch możliwości: 1. preskaler timera - jedno z ustawień preskalera powoduje zatrzymanie timera czyli "No clock source (Timer/Counter stopped)." 2. zerując bit TOIE0 (jeśli użyjesz timer0), czyli Timer/Counter0 Overflow Interrupt Enable
Witam. W pewnie działającym u kolegi kodzie, podczas kompilacji wyrzucane są błędy. Oto fragment kodu i błędów:[syntax=vbnet]$regfile = 89c4051.dat $large $crystal = 11059200 'Konfigurujemy Timery: Timer0 jako liczący impulsy WEG a Timer1 jako odmierzający czas 1s Config Timer0 = Counter , Gate = Internal , Mode = 1 Config Timer1 = Timer , Gate = Internal...
Witam Problem następujący... Program ma liczyć imulsy, a dokładnie mierzy częstotliwość. Wszystko chodzi jeśli wybiorę zamiast TIMERA2 - TIMER1, ale ja musze to zrobić na TIMER2. Pozniżej kod: [syntax=basic4gl] $regfile = "m328pdef.dat" $crystal = 11059200 $hwstack = 256 ' rozmiar stosu sprzętowego $swstack = 128 ' rozmiar stosu $framesize = 128 Dim...
Witam Czy da się w 89C2051 uzyskać coś takiego: potrzebuję zliczać impulsy z dwóch wejść i do tego zliczać czas trwania impulsu z trzeciego wejścia, a poza tym wszystko wyświetlać co jakiś czas (powiedzmy co 0,5s) Można jeden timer użyć jako timer wewnętrzny (wyświetlanie co jakiś czas), a drugi jako timer bramkowany zewnętrznie (do liczenia czasu trwania...
Mam mały problem chcę zrobić prosty miernik częstotliwości w bascomie do ok. 600KHz Warunek ma mierzyć z dokładnością 1Hz i niestety nie wychodzi mi to. Taimer 1 mam skonfigurowany jako taimer (Config Timer1 = Timer , Prescale = 8) taimer 0 skonfigurowany jako licznik (Config Timer0 = Counter , Edge = Falling ) z resztą zamieszczam fragment kodu [syntax=basic4gl]$regfile...
ja to rozumiem ale to były wahania ze raz dawał 0 potem następny 30, a następny pomiar 60... 0 0 30 60 60 0 30 trochę duża rozbieżność... zlutuje to jeszcze raz zobaczę co się będzie działo Dodano po 2 Wywaliłem tranzystor wstawiłem sam rezystor podciagajacy . załadowałem program [syntax=basic4gl] Dim Wynik As Long Dim Wynik1 As Long Config Timer0 =...
Ty to jesteś krejzolka Aldoro wiesz hahahahaha Podłączył byś wyjście transoptora do wejścia INTx albo ustawił Timer jako Counter a wyzwalanie jako, na przykład Falling, Co sekundę sprawdzał byś ile impulsów nabiło przez sekundę. I to wszystko. Bez obsługi przepelnienia Timera osmiobitowego zmieścił byś 255 impulsów na sekunde. Miłego dnia. Mogłeś wcześniej...
Cześć Mam pewien problem do rozwiązania potrzebuje zrobić licznik który będzie mi zliczał do 10000 co 1 sek zrobiłem sobie liczniki T0 i T1 zliczają do 255 bo mają 8bit ale T2 ma 16bit nie mogę tego przeskoczyć[syntax=basic4gl] $regfile = "m32def.dat" $crystal = 16000000 Config Porta = &B11111111 : Porta = &B11111111 Config Portb = &B00000000 : Portb...
Witam ponownie. Chciałem odświeżyć temat. Mianowicie napisałem kod który będzie zliczał ilość impulsów w czasie 1 sek i zapalał diodę jeśli przekroczy limit. .............. Poniżej kod: Oczywiście, tak ma być z tymi dziwnymi objawami. Po pierwsze; Attiny 13 nie ma 'praktycznej' możliwości pracować przy 1 MHz; możesz skonfigurować go dla: 1.2 MHz; 4.8...
Wy edytowałem takie coś. [syntax=basic4gl]'************* Konfiguracja uC ***************** '***************************************... $regfile = "m8def.dat" $crystal = 16000000 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 Config Lcd = 16 * 2 Dim Wynik As Long Dim Wynik1 As Long...
Witam Procesor jak w temacie. Podłączyłem sygnał zmienny (fala prostokątna) do obu nóżek PortB0 (T0) i PortB1 (T1). Napisałem program w celu sprawdzenia czy oba liczniki działają: $regfile = "M16def.dat" 'Wybór kontrolera ATMega16 $crystal = 8000000 'Kwarc 16MHz Config Lcd = 20 * 2 'Rodzaj wyświetlacza Config Lcdpin = Pin , Db4 = Portc.1 ,...
To, że program i schemat to jedna całość to akurat wiem :), Napisałem dla przykładu "set PORTB.0". Schemat Poprawiłem, w kodzie tylko ustawienia pinów, nie wiem czy dobrze go okroiłem z wyświetlacza. Jam pozbyć się zewnętrznego kwarcu w kodzie? co trzeba pozmieniać? EDIT http://obrazki.elektroda.pl/9407654700_1... [syntax=basic4gl]$regfile...
Wydaje mi się, że nie uruchomisz PWM na tym procesorku. Oficjalna informacja: CONFIG TIMER0 = COUNTER , PRESCALE= 1|8|64|256|1024 , EDGE=RISING/FALLING , CLEAR TIMER = 1|0 CONFIG TIMER0 = TIMER , PRESCALE= 1|8|64|256|1024 Jak widzisz Timer0 nie da się ustawić jako PWM. Ale... Nieoficjalnie może Ci zadziałać jednak taka konfiguracja Timera0: Config Timer0...
Czy może ktoś pomóc?? (przepraszam za post pod postem) Zmodyfikowałem kod tak jak niżej podam, układ działa i mierzy mi dobrze obroty, ale tylko na pinie 11, na pinie nr 6 również mierzy ale pomiar jest niedokładny waha sie często w zakresie (1400-1900rpm) podczas gdy na pinie 11 jest około 1800rpm stałe. Dlaczego tak sie dzieje? Mozna cos na to poradzić?...
No więc wymyśliłem coś takiego: $regfile = "attiny13.dat" $crystal = 1000000 Config Pinb.3 = Output Config Pinb.4 = Output Dim A As Byte Dim B As Byte Config Timer0 = Counter , Edge = Rising Do Timer0 = 0 Start Timer0 wait 1 Stop Timer0 Timer0 = A If A > 3 Then For B = 1 To 20 Pulseout Portb , 3 , 250000 Waitms 250 Pulseout Portb , 4 ,...
bascom charakteryzuje sie latwoscia programowania o ile w asemblerze musisz dobrze znac budowe procka to w bascomie az taka duza wiedza nie jest potrzebna <co moze jednak nie jest az takim duzym plusem :roll: >chac np uruchomic licznik w asemblerze trzeba wpisac odpowiednie stany w odpowiednie rejestry natomiast w bascomie zalatwiaja to wpisane...
A proszę bardzo wersję: Compiler version: 2.0.2.1 Compiler build: 2.0.2.1.0 IDE version: 2.0.2.0 Windows OS: Windows 7 Proffesional SP1 Oryginał legalny nie ma się czego wstydzić. Timera używam tylko jednego z odmierzaniem około 5 sekund. 'konfigurujemy timer wywoływany co jakiś czas (patrz procedura) Config Timer0 = Counter , Prescale = 1024...
Config Timer0 = Counter , Gate = External , Mode = 1 Config Timer1 = Timer , Gate = Internal , Mode = 1 Config Lcd = 16 * 2 Dim Frequency As Long Dim Temp As Byte Dim Counts As Byte Dim kon As string *3 Declare Sub 1sekunda On Timer1 Timer1_int On Timer0 overflow Enable Interrupts Enable Timer0 Enable Timer1 kon="Hz" Frequency = 0 Cls Do...
Witam, Mam do mikrokontrolera podłączony układ, który w wielkim uproszczeniu dostaje sygnał PWM z uC i zwraca go z pewnym przesunięciem fazy z powrotem . Chciałbym mierzyć to przesunięcie fazowe. W tym celu podaje do tego układu sygnał o częstotliwości 40 kHz z PWM, a sygnał wyjściowy układu dołączam do wejścia CAPTURE 0.0. W trakcie działania programu...
Najlepiej by było gdyby z zielonego przy 1000rpm płynnie przechodziła w czerwony przy ok 6000rpm. do tego trzeba wykorzystać PWM , a obrotomierz najlepiej zrobić na przerwaniach i dokładnie odliczać 1s bo "wait 1" to napewno nie jest 1 sekunda , tu macie przykład częstościomierza: Config Timer0 = Counter , Gate = External , Mode = 1 Config Timer1 =...
W jakim środowisku działasz? Jesteś pewny nazwy tego wektora? Nie ma żadnych ostrzeżeń? Bo mnie się tu coś nie zgadza: [syntax=c]ISR(TIMER0_COMPA_vect){}[/synt... Tak chyba powinno być prawidłowo: [syntax=c]/* Timer/Counter0 Compare Match */ #define TIMER0_COMP_vect_num19 #define TIMER0_COMP_vect _VECTOR(19) #define SIG_OUTPUT_COMPARE0 _VECTOR(19)[/syntax]
Zastosuję się do rady. Mam jeszcze problem z zaprogramowaniem tego procesorka tzn. nie wiem jak napisać toto :( EDIT Stworzyłem coś takiego. Nada się w jakimś stopniu, czy ogólnie do wyrzucenia ten kod? [syntax=basic4gl] $regfile = "m8def.DAT" $crystal = 8000000 Config Pind.1 = Input ' wyprowadzenie PD1 jako wejście Config Pinb.1 = Output ' wyprowadzenie...
Poskładałem taki programik: $regfile = "m16def.dat" $crystal = 9000000 Config Porta = Input Porta = &B11111100 Config Portc = Output Portc = &B00010000 Config Portd = Input Portd = &B11111111 Config Portb = &B11111100 Portb = &B11111111 Config Lcd = 20 * 2 Config Lcdpin = Pin , Db4 = Portb.5 , Db5 = Portb.4 , Db6 = Portb.3 , Db7 = Portb.2...
Cześć Mam program, ktory w czasie 3 sekund (liczone przez Timer1) powinien liczyc impulsy podawane na licznik Timer0 i odpowiednio do tego tyle razy zaswiecic diode. $regfile = "m8def.dat" $crystal = 1000000 Config Pinb.1 = Output Config Timer1 = Timer , Prescale = 64 Config Timer0 = Counter , Edge = Rising On Timer1 Odmierz_3s Dim Licz As...
Witam, Jestem początkujący w programowaniu bascom chcę zrobić licznik impulsów podawanych na timer o jako licznik . Zrobiłem licznik ale liczy max 255 a ja potrzebuje licznik z 99999 . Nie bardzo wiem jak mam to zrobić .Proszę o pomoc $regfile = "m8def.dat" 'Info dla kompilatora. $crystal = 16000000 'Informujemy kompilator o kwarcu 16MHz....
Odświerzę trochę temat. Ja konkretnie muszę w miarę precyzyjnie zmierzyć prędkość obrotową w możliwie krótkim czasie. prędkość w zakresie 750-6500 obr/min. Dysponuje tarczą 25 nacięć na obrót i fotokomórką szczelinową która daje ttl na wyjściu. Puki co ttl generuje z generatora ne555 by uniknąć błędów pomiarów związanych ze stroną mechaniczną systemu....
Witam Mam sygnał z pinu PCF8583 (INT), który zmienia swój stan na przeciwny co sekundę. Chciałem napisać program, który zacznie liczyć impulsy (stan niski) doprowadzony z wyjścia PCF8583 do nogi procesora, jak policzy np. 5 takich impulsów, to zaświeci led. Pierwotnie miało to służyć do opóźnienia włączenia podświetlenia w LCD, ale użyłem Waitms i osiągnąłem...
Sprawdziłem w symulacji i tak jak pisał kolega zumek działa. (Bascom 1.11.8.7): Dim Bajt As Byte Dim Mbit As Bit Config Portb = Output Do Mbit = Not Mbit Bajt.3 = Mbit Portb = Bajt Loop A w rzeczywistości? Bo jak się okazuje to nie to samo :-( U mnie w symulacji w innym przypadku dziwnie zachowuje się Timer0 jako Counter a w rzeczywistości OK. Jak...
po wielu zastanowieniach zrobiłem tak: $regfile "m8def.dat" $crystal = 1000000 Config Lcdpin = Pin , Db4 = Portd.7 , Db5 = Portb.2 , Db6 = Portb.1 , Db7 = Portb.0 , E = Portb.4 , Rs = Portb.5 Config Lcd = 20 * 4 ''''''''''''''''''''''''''konfiguracja portów'''''''''''''''''''''''''''''''''' Config Portb.3 = Input ''''''''''''''''''''''''''''konfiguracja...
Witam Mam następujący problem. Używam timer0 jako licznika impulsów 12V które po przejściu przez układ dopasowywujący dają wartość 5,6 V na końcówce. Podobnie zliczam czas takiego impulsu za pomocą tego samego typu układu dopasowywującego. Problem tkwi w tym że timer0 nie zlicza mi impulsów przez podanie napięcia tylko wtedy gdy np: dotkne palcem albo...
Zamieszczam przyklad programu napisanego na kolanie, zmienia stan lini PC3 co okolo (LicznikMax*10ms ) - wychodzi co ok. 100 ms Gdybyś miał wątpliwości to podniosłem moje kości z krzesła przed komputerem po płytkę z AtMega32 i sprawdziłem w ukladzie - DZIAŁA! Kompilowany pod ICC626, polecam "Wizarda" ,pomaga w minute ustawić co potrzeba bez sięgania...
Witam. Na forum jestem nowy, ale Atmege8 gryzę już od roku:). Zakładam że czytałeś datasheet'a od Atmega8 i niestety nie udało Ci się zrozumieć.Jeżeli tak to Ci pomogę. Po pierwsze w Atmega8 masz trzy timery/countery: -Timer0 8bit -Timer1 16bit -Timer2 8bit Timer1 i Timer2 możesz wykorzystać jako PWM,gdyż mają wbudowaną taką funkcje. Wiadomo że 16bitowy...
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. Naszło mnie na zrobienie shift lighta do samochodu (taka lampka, która zapala się po przekroczeniu zadanych obrotów). Na Zmontowanym układzie działały programiki od zapalania diody, naciskania switcha itp. W hardware mam póki co jedną ziodę z rezystorem na pinie PD3 podpiętą do + i na PB0 wejście na impulsy z cewki w ten sposób, że cewka->rezystor...
........ chce wykorzystać wewnętrzny kwarc 8Mhz po trzecie czytając helpa jesli dobrze rozumiem to timer1 jest 16bitowy a timer0 jest 8 bitowy emarcus - gdybym chciał wykorzystać twój pomysł to gdybym zostawil timer1 jako counter a jako timer wykorzystał timer0 ktory by zliczał czas w jakim sa zbierane impulsy - jeśli o to ci chodziło i jeśli jest...
Widzę,że nie ma zainteresowania tematem. A mnie na razie udało się stworzyć układ na Attiny2313. Config Portb.0 = 1 ' ustawienie całego Portu B0 jako wyjścia Portb.0 = 1 ' stan spoczynkowy Portu B0 ustawiony na 1 Config Portb.1 = 1 ' ustawienie całego Portu B1 jako wyjścia Portb.1 = 1 ' stan spoczynkowy Portu B1 ustawiony na 1 Config Timer0 = Counter...
Umiem juz zliczac imulsy za pomoca timerow :) Mam jeszcze problem z tym ze TIMER0 ustawiony jako Counter reagujacy na narastajace zbocze zlicza cos (jakies impulsy) w momencie kiedy na wejsciu T0 jest wysoki stan, przy niskim stanie nie zlicza. Przeciez ma reagować na zbocze a nie na ciągły stan? Dlaczego tak jest? Problem filtracji zasilania a moze...
Po pierwsze aby którykolwiek Timer(czy 0 lub 1) zaczął działać trzeba go skonfigurować. W programie wyżej zostało podane polecenie Config Timer0=Timer (counter) Oznacza to że timer0 będzie zliczał impulsy z wewętrznego zegara kwarcowego (albo z zewnątrz procesora z koncówek T0 lub T1- w tym wypadku zamiast timer wpisuje sie counter) które wstępnie zostaną...
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...
Witam Zbudowałem termometr na AT89C2051 z czujnikiem LM335 i przetwornikiem U/f LM331. Termometr działa, ale pomiar częstotliwości (3-5 kHz) odbywa się przy pomocy procedury Wait, wiem że nie nadaje się ona do takich rzeczy i aby uzyskać w miarę równe i poprawne wyniki musiałem zmniejszyć czas z 1 s do 780 ms i brać średnią z 10 pomiarów. Mimo to termometr...
Struktura programu wyglada mniej wiecej tak, wycialem kilka nieznaczacych fragmentow. 'definiowanie procka $regfile = "m8def.dat" $crystal = 8000000 'konfiguracja portów ... Config Timer0 = Counter , Edge = Falling 'Licznik impulsów drogi Enable Timer0 : On Timer0 Przep 'przepelnienie licznika Config Timer1 = Timer , Prescale = 64 Enable...
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...
Poszukałem trochę dodatkowych materiałów do wchłonięcia przez moje szare komóreczki :) 13 Liczniki Słowo licznik to próba przetłumaczenia słowa timer. Ja używam tego słowa jako odpowiednika, ale nie wszyscy się z tym zgadzają i twierdzą, że należy używać słowa timer, gdyż nie można dokładnie przetłumaczyć znaczenia. Licznik to układ liczący o rozdzielczości...
Witam. Robię obrotomierz na 89c2051. Założenie jest takie żeby było jak najmniej elementów. Na wejście timera dałem tranzystor npn. Na jego bazę daje impulsy sterowania cewką zapłonową. Obrotomierz ma być do motocykla 4T 1 cylinder, więc jeden impuls to jeden obrót. Jak układ testuję na transformatorze podpiętym do sieci to ładnie pokazuje wynik "obr...
Witam , po przerwie , Nie, w zależności od szacowanych obrotów wybierasz metodę pomiaru, w której wykorzystujesz jeden (dowolny) timer, lub oba w której jeden odmierza czas a drugi zlicza impulsy. Ta ostatnia jest alternatywą do tej którą zastosowałeś lecz czas jest mierzony timerem a nie przez processor instrukcją Wait . Ta druga metoda polega na pomiarze...
Sygnał mierzony na Pind.4. Mega na kwarcu zewnętrznym. $regfile = "M8def.DAT" $crystal = 11059200 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.5 , Db5 = Portb.4 , Db6 = Portb.3 , Db7 = Portb.2 , E = Portb.6 , Rs = Portb.7 Cursor Off Dim Czestotliwosc As Long Const Licznik = 22336 Config Timer1 = Timer , Prescale = 256 Config Timer0...
Czes mam problem z ponizszym programem a dokladniej jest jakis blad na koncu bo niechce sie skompilowac blad zostal zawarty w zalaczniku. $large $baud = 9600 $crystal = 24000000 Config Lcd = 20 * 2 Cursor Off Config Timer0 = Counter , Gate = External , Mode = 1 Config Timer1 = Timer , Gate = Internal , Mode = 1 Config Timer2 = Timer , Gate = Internal...
ale z tego co się już dowiedziałem nie będzie działać na mojej płytce Nie prawda, będzie działał po zmianie kilku linijek kodu. [syntax=basic4gl]$regfile = "8515def.dat" $crystal = 10000000 [/syntax] To zmień na swojego procka i częstotliwość oscylatora, jaki Masz. Na przykład [syntax=basic4gl]$regfile = "m32def.dat" $crystal = 8000000 [/syntax] Tą...
Witam, Nic nie przeszkadza w tym, że to bascom. Prescaler jest ustawiony na 64 więc zanim licznik zdąży zwiększyć swoją wartość to uC już załaduje do niego odpowiednią wartość. W Twoim programie jest pare błędzików, które może nie wpływają na dokładność pomiaru, ale są głupie :) konfigurując porty, dla pewności możesz napisać: set ddrb.2 set ddrb.3...
1. Do tego co napisał Fredy wyżej: http://mikrokontrolery.blogspot.com/2011... 2. Zmienną akt_wyswietlacz zdefiniuj sobie jako lokalną statyczną w funkcji przerwania. 3. F_CPU definiuj w opcjach, a nie w kodzie: http://mikrokontrolery.blogspot.com/2011... 4. W jakim celu zerujesz TCNT2 w przerwaniu...
Ewidentnie napisane jest, że counter0 jest licznikiem impulsów !!!! To w programie kol. manekinen . Natomiast ustawienia konfiguracyjne w mojej ostatniej wersji są inne: Config Timer1 = Counter , Edge = Falling : Enable Timer1 Config Timer0 = Timer , Prescale = 8 : Enable Timer0
przygotowalem okrojona wersje, w ktorej tez ten blad wystepuje (oczywiscie w starej wersji bez bledu): 'definiowanie procka $regfile = "m8def.dat" $crystal = 8000000 'konfiguracja portów Ddrc.5 = 1 : Sda Alias Portc.5 Ddrc.4 = 1 : Mrq Alias Portc.4 Ddrc.3 = 1 : Scl Alias Portc.3 Config Portd.2 = Input : Portd.2 = 1 Config Portd.3...
OPIS FUNKCJI LOAD Action Load specified TIMER with a reload value. . . . It will do the calculation. (256-value) So LOAD TIMER0, 10 will load the TIMER0 with a value of 246 so that it will overflow after 10 ticks. TIMER1 is a 16 bit counter so it will be loaded with the value of 65536-value. Czyli u ciebie ładuje 65536 - 65436 = 100 Przepełnienie właśnie...
TCNT0 - The Timer/Counter Register gives direct access, both for read and write operations, to the Timer/Counter unit 8-bit counter.
Owszem że chcę słuchać kolegi janbernat`a :) bo chcę się nauczyć, wczoraj i dziś próbowałem trochę poznać tajniki przerywań, a dokładniej TIMER0, jednakże nie za bardzo to rozumiem. Albo tak naprawdę nie wiem jak ma wyglądać konstrukcja programu żeby to chodziło. Czy coś takiego w uproszczeniu byłoby dobrym rozwiązaniem? (proszę się nie śmiać bo naprawdęnie...
No i nie udało mi się tego zrobić na Timer0- on sie kręci bez przerwy a ja potrzebuję włączyć i wyłączyć timer. Tak że na razie na Timer1- szkoda bo 16 bitów- ale zrobię na Timer2. Spokojnie użyj Timer0, który będzie zgłaszał przerwanie np. co 1ms. W procedurze obsługi tego timera dekrementuj zmienną, jeśli osiągnie 0 to należy zatrzymać dekrementowanie,...
Witam,. Mam następujący problem: Przetwornik analogowy na ADC pin 1 Przetwornik częstotliwość na Timer0 max232 1uF Kwarc 8Mhz i atmega16L Na kablu ze złączkami BNC mam połączenie atmega -> przetwornik czestotliwosci (2 kolumna). Wydaje mi się, że wszystko dobrze zlutowane oraz nie ma przerw w kablu BNC. Kabel mam 50 Ohm. Podczas wysyłania danych na...
Witam . Napisalem program do obslugi enkodera oraz zalaczania cewek w silniku. Cos nie dziala prawidlowo . Przy niskich obrotach program pracuje prawidlowo pozniej nie dziala dobrze. Czy program jest napisany prawidlowo . Prosze o pomoc. Ponizej zamieszczam program : [syntax=basic4gl] $crystal = 8000000 Config Portb = Output Config Portd = Output Config...
Reasumując: P0-22 wykorzystałem jako STEP do sterownika silnika(zmiana stanu w przerwaniu timera0) P0-21 wykorzystałem jako DIR w sterowniku(zapala też mi zewnetrzną diodę jak 1) W przerwaniu liczę ilość przerwań. [syntax=c] void TIMER0_IRQHandler (void) { LPC_TIM0->IR = 1; /* clear interrupt flag */ timer0_counter++; //pclksel0_val = LPC_SC->PCLKSEL0;...
Witam :) Po kilku dniach zabawy udało mi się zbudować układ składający się z ATMEGA16 (kwarc zewnętrzny 8 MHZ, rs232) i: - czujnika podającego na pin A1 napięcie 0.2-4.7V - czujinka podającego częstotliwość 4-40kHz na pin PBO. Po przestudiowaniu podstaw BASCOMu i lekturze forum udało mi się napisać oddzielne programy do obsługi tych czujników. Jednak...
Ale litości. Wstaw ATTiny2313. Po co aż ATMega32? ATMega8 to by było przegięcie a co dopiero 32. $crystal = 4000000 Config Lcd = 16 * 1a Cursor Off Config Timer0 = Timer , Prescale = 1024 Config Timer1 = Counter Dim Temp As Byte Dim R As Byte Dim Freq_compare As Word Dim Metal_type As Bit Dim Freq As Word Dim Dif As Word Dim Temp2 As Byte Dim Prescale...
jednakże i tak nie rozumiem dlaczego jestem w stanie wygenerować impuls HIGH 1,2 us a nie mogę korygować czasu trwania odstępu LOW między tymi impulsami. To akurat ma proste wytłumaczenie. Te funkcje typu delay... to po prostu odpowiednie do żądanego czasu serie instrukcji (nieproduktywnych), głównie pętle, tak spreparowane by zajęły procesor na określoną...
W oparciu o poniższy link: A Alias Pind.2 'wyjscie enkoddera wchodzi na pind.2 Config A = Input 'configi Dim Dystans As Long ' ilosc impulsow do przejechania Dim Ruszyl As Bit ' czy ruszylem z miejsca Ruszyl = 0 ' domyslnie nie ruszylem Config Int0 = Falling 'chyba opadajace zbocza On Int0 Akanal 'jak bedzie przerwanie to idz do Akanal Config Timer1...
Witam. Przeszukałem już forum, ale nie rozwiązałem problemu. Chcę zrobić komputer spalania do samochodu. Najpierw zaczynam od pomiaru prędkości, bo bez tego nie policzy się spalania. Od razu trafiłem na problemy. Kod: $regfile = "m8def.dat" $crystal = 4000000 ''''''''''''''''''''''''''konfiguracja portów'''''''''''''''''''''''''''''''''' Config...
Ja mam taki: $regfile = "2313def.DAT" $crystal = 11059200 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.5 , Db5 = Portb.4 , Db6 = Portb.3 , Db7 = Portb.2 , E = Portb.6 , Rs = Portb.7 'Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.1 , Db6 = Portb.0 , Db7 = Portd.6 , E = Portb.3 , Rs = Portb.4 Cursor Off Config Portd.6 = 1 Config...
Witam. Robię sobie komputerek spalania do samochodu. Wszystko ładnie wychodzi poza czasem wtrysku a co za tym idzie - spalaniem. Występują jakieś zakłócenia i nie wiem dlaczego. Może ktoś pomoże....:) Kod: $regfile = "m168def.dat" $crystal = 16000000 ''''''''''''''''''''''''''konfiguracja portów'''''''''''''''''''''''''''''''''' Config Portd...
timer0 counter pulse config timer0 counter policzy timer0
kosztorys przykład przewodność mosiądzu wtyczka angielska
naprawa paneli fotowoltaicznych satel indigo
Holtek HT45F0057 – mikrokontroler do kuchenek indukcyjnych, ADC, PWM, opis funkcji Wymiary gałek potencjometrów i przełączników Radmor 5100, 5102, 54xx – szczegółowe dane