Trzeba mierzyć czas impulsu i jeśli wynik = ileśtam to wtedy dzieje sie cośtam Może : $regfile = "twój uP" $crystal = twój crystal Config Timer1 = Counter , Edge = Rising Config Portc = Input Do If Portc.1 = 1 Then Start Timer1 If Portc.1 = 0 Then Stop Timer1 End If End If For Timer1 = 100 To 200 Reset Porta.1 Next For Timer1 = 300 To 600...
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ą...
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:...
Zdefiniuj zmienną Temp jako Word. Jak ci ma wyświetlić 600 jesli zmiena Byte może przyjąc max wartość 255. Właśnie powyżej tej wartości będą ci sie wyświetlać dziwne rzeczy. No to może wytłumaczę jak to zrobić na zmiennej typu Byte według wyżej wspomnianej ideii. $crystal = 4000000 $regfile "attiny2313.dat" Dim Pomiar As Single Dim Temp As...
] Gdybym chciał jednak mierzyć załóżmy do 1kHz to wymaga aby zliczać przepełnienia? Dlatego napisałem..."Nie znaczy to jednak..." w złym obliczeniu 1 sek wartość wynosiła 61630, przy prawidłowym obliczeniu wynosi 34 286 uwzględniając czas 1sek, częstotliwość taktowania 8MHz i prescaler 256. Przecież czas (1 sec.) odmierzasz timerem0, który jest 8-bitowy...
Przerobiłem troche kod i teraz powinno być dobrze. Ale do jakiej częstotliwości mierzy dobrze to nie sprawdzałem. Sygnał podpinasz pod PD.5 $regfile = "m8def.dat" $crystal = 8000000 Cursor Off Dim Czestotliwosc As Long Dim Licz_8ms As Byte Config Timer0 = Timer , Prescale = 256 Config Timer1 = Counter , Edge = Falling Config Lcd = 16 * 2 Config...
........ 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...
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...
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...
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 ,...
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...
Wydaje mi się, że najpierw powinno być „uruchomione” odliczanie tych 0,1 sek, wyzwalane pierwszym pikiem z „paczki”. Potem trzeba odczekać te 0,1 sekundy na zanik „szumów” i zacząć zliczanie w czasie 0,9 sek. Ilość zliczonych pików podzielona przez czas da mi częstotliwość. Wynik ma się utrzymywać na wyświetlaczu...
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...
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...
(at)seba_x:A co to za bzdura?:> • Peripheral Features – Two 8-bit Timer/Counters with Separate Prescaler, one Compare Mode – One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode A co do pytania autora, nie, zliczanie umożliwiają tylko dwa pierwsze timery. Trzeciego można używać jako wewnętrznego. Nie tylko...
Chciałbym jednak użyć CTC, ale kompletnie nie wiem jak się za to zabrać w Bascomie. Nie znalazłem na forum żadnych przykładów. Jak by ktoś poczęstował przykładem kodu dla z CTC w Bascom to byłbym niezmiernie wdzięczny :) Jakieś kilka dni temu, nie dłużej jednak niż tydzień, ‘gaskoin’ podal dokładną procedurę konfiguracji CTC. Jeżeli przeoczyłeś...
Witam, niestety ale chyba coś jest nie tak? Na wstępie należałoby wyjaśnić że nie ma czegoś takiego jak "automatyczne przeładowanie timera" (reload/load timer1 powiedzmy). Termin ten jest związany z procedurą konfiguracji timerów występującą tylko w trybie "Normal", gdzie każdorazowo początkowa wartość timera musi być wpisana przez processor. Taka...
Sorry, Wiesz ja to sie z tym bawie tylko i program pisze w bascomie metoda prob i bledow. Nie ma większego znaczenia w jakim środowisku programujesz (Basic albo C). Istotny jest koncept projektu i sposób rachunkowy, reszta to tylko inna forma zapisu programu. Wybrałeś za narzędzia: Timer1 i jeden z interruptów zewnętrznych. Zatem jest tez bez znaczenia...
Udało mi się odpalić program z książki Pana Wiązani, ale tam timet odmierza 1s Jak to przeliczyć? Jest jakiś na to wzór? Rzeczywiście musiało się 'udac odpalić' bo ten program nie jest pozbawiony błędów (!) \ A jak zrobić żeby odmierzał np 10 sekund? Zmiana preskalera wydłużyła max do 2sekund czas. Aby timer1 odmierzył inne/dowolne interwały czasu,...
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,...
Coś takiego znalazłem. Co prawda na Atiny ale można przerobić. [syntax=c]// // Talking to ultrasonic sensor HC-SR04 with an ATtiny84, and // sending distance data using serial communications. // // electronut.in // #include <avr/io.h> #include <string.h> #include <util/delay.h> #include <avr/interrupt.h> #define F_CPU 8000000...
Dlatego, że nie używasz AS masz problem z ustaleniem przyczyny. Wystarczy uruchomić symulator, by zobaczyć, że Twój program wpada w zabezpieczenie dodawane przez kompilator polegające na wyłączeniu przerwań globalnych i zapętleniu się w specjalnie dodanej pętli. Symulator na początku zabawy z mikrokontrolerami, to podstawowe i bezpłatne narzędzie -...
A gdzie instrukcja CONFIG TIMER1 = COUNTER?
Witam ponownie, Poszedłem o krok dalej i moim planem jest podłączenie każdego z czterech wtryskiwaczy do osobnego pinu Arduino Uno/Nano z Atmega 328p. Pozwoliło mi to na skonstruowanie programu aby sterować każdym wtryskiwaczem z osobna z tą samą częstotliwością i wypełnieniem, ale sygnał do ich wysterowania jest przesunięty około 90° (problem z rozdzielczością...
Nie bardzo wiem, gdzie to umieścić, a sądzę że kilku osobom może się przydać. Niby to nic ambitnego, schematu nawet nie rysuję - wyjście przebiegu jest na pinie 8 Arduino (Duemilanove, UNO lub cokolwiek z ATMegą 8/88/168/328 taktowaną 16MHz) i wystarczy go podpiąć przez kondensator 47-100nF na wejście czujnika położenia wału korbowego (CKP/CPS) w sterowniku...
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
Config Timer1 = Counter , Edge = Rising ,Noise Cancel = 1, Prescale = 1 , Compare A = Disconnect,Compare B = Disconnect Nie działa Config Timer1 = Counter , Edge = Rising , Noise Cancel = 1 , Capture Edge = Rising , Compare A = Disconnect , Compare B = Disconnect , Clear Timer = 0 Działa THX
https://obrazki.elektroda.pl/9593307400_... Stacja pogodowa na wyświetlaczu 240x128 ze sterownikiem T6963, Arduino Nano jako "sterownikiem" wyświetlacza i ESP8266 jako źródłem. Uzyskałem wyświetlacz z lekkim uszkodzeniem w postaci nieczynnych poziomych linii, wyeliminowałem te linie wykorzystując odpowiednie graficzne ułożenie (przerwy...
Po pierwsze to mega dziwnie ustawiasz ten oscyloskop, ale to detal. Po drugie, powiem szczerze, nie do końca rozumiem działanie trybu 15 TIMER1. W tym trybie licznik liczy do wartości ustawionej w OCR1A, ale kiedy następuje przełączenie wyjścia? Chyba już wiem w czym rzecz. Z noty: "Combined with the WGM13:2 bits found in the TCCR1B Register, these...
Zerżnięte z helpa : CONFIG TIMER1 = COUNTER , EDGE = RISING, CAPTURE EDGE = RISING , COMPARE A = DISCONNECT , COMPARE B = DISCONNECT -- Pozdrawiam, Daniel
Przydał by się jakiś przykład ale pokombinuje . To trochę komplikuje sprawę bo timer1 jest już zajęty ale zobaczymy czy działa lepiej. Docelowo muszę dokonywać pomiaru 2 sygnałów ( sygnałów serw rc). Tylko jeśli ustawię: Config Timer1 = Counter , Edge = Rising , Capture Edge = Rising i po pojawieniu się zbocza zmienię na: Config Timer1 = Counter , Edge...
Raz są zgodne raz są w przeciwfazie. A nie zależy to przypadkiem od stanu początkowego pinu? Config Timer1 = Counter , Prescale = 1 , Compare_A = Toggle , Compare_B = Toggle , Clear_Timer = 1 Nie znam baskoma ale toggle o tym mówi.
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ę...
... to chyba najprostrze rozwiązanie (program pod BASCOM) Config Timer1 = Counter , Edge = Falling Enable Timer1 Do Timer1 = 0 Waitms 100 Print Timer1 ; "0 Hz " ; Chr(13); Loop sygnał TTL podaje sie na 9 noge 90s2313, a z 3 nogi przez tranzystor odwracajacy - na COM do kompa (pin2). moze to urzadzenie nie jest bardzo dokladne ale w przyblizeniu potrafi...
Impulsy są z czujnika z zewnątrz - powiedzmy klawisza który podaje 5v czy tam mase. Konfiguracja jest tu Config Timer1 = Counter , Edge = Rising czyli t1 jest wejściem i zbocze zwiększa wartość timer1 co spełnia warunek If Timer1 = 1 Then Timer1 = 0 i tyle. Działa bo widzę na układzie tylko czy czasy sie zgadzają nie mam pojęcia skoro mam Counter0 =...
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...
Znam Turbo Pascala a Bascom jest do niego bardzo podobny prawie to samo to przerobiłem sobie ten kod pochodzący z tej strony $crystal = 4000000 $regfile "attiny2313.dat" Dim Wynik As Long Config Timer1 = Counter , Edge = Rising Cls : Lcd "Dosimeter" : Wait 1 Do Cls Timer1 = 0 Start Timer1 Wait 40 Stop Timer1 Cls Lcd ; Wynik...
A gdyby tak zrobić miernik częstotliwości ?? $crystal = 4000000 $regfile "attiny2313.dat" Dim Wynik As Long Config Timer1 = Counter , Edge = Rising Cls : Lcd "Freq. Meter" : Wait 1 Do Timer1 = 0 Start Timer1 Wait 1 Stop Timer1 Wynik = Timer1 * 1 Cls Lcd "+Freq. Meter+" Lowerline Lcd "Freq. " ; Wynik ; " Hz " Cursor Off Loop End Chyba ujdzie nie ?? Jak...
Może napisz 2 częstościomierze oc1a ,octb - oczywiście liczysz ilość impulsów -tak jak napisałeś. ilość imp. odpowiadać musi stopniom 'C skrypt na hertz'miarke : 'Częstościomierz nieco dokładniejszy Config Timer1 = Counter , Edge = Rising Do : Timer1 = 0 : Start Timer1 Waitms 999 'tu można skorygować wynik Stop Timer1 : Cls : Lcd "F="...
Witam Mój problem wygląda następująco: -układ na jakim pracuje to atmega 8 a srodowisko programowania Bascom Po zalaczeniu i skonfigurowaniu countera w sposob następujący Config Timer1 = Counter , Edge = Rising , Noise_cancel = 1 Enable Interrupts Enable Timer1 Podczas odczytu wartości countera licznik szaleje (sam nalicza jakies nie stałe wartości)...
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...
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...
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...
Na AT90S8535 zrobiłem sobie licznik impulsów i elegancko zlicza. Zrbiłem to na dwa sposoby (poniższy kod) z wykorzystaniem jednego timera i bardziej dokładny z wykorzystaniem 2 Timerów. Najgorsze jest to że gdy wsadziłem ATmega8535 na lcd pojawia mi się zero tak jakby counter w ogóle nie zliczał impulsów. Zegar procków (7.372.800 Hz) ten sam. Co jest...
Mam takie wydaje mi sie proste pytanie. Jesli ustawie timer1 jako counter liczy on stany wysokie (5V). Czy da sie go ustawic tak zeby liczyl stany niskie (0V)?
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...
Mam takie coś: $crystal = 4000000 $regfile "attiny2313.dat" Config Lcd = 16 * 2 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.4 LCD Db5 = Portb.5 , Db6 = Portb.6 Db7 = Portb.7 , E = Portb.3 Rs = Portb.2 Dim Wynik As Long Config Timer1 = Counter , Edge = Rising Cls : Lcd "Licznik" : Wait 1 Start Timer1 If Pind.1 Then Waitms 25 Timer1 = 0 Do Timer1...
Witam Potrzebuję zbudować licznik który po zliczeniu określonej liczby impulsów wykona jakąs czynność. Jako generator impulsów wykorzystałem kontaktron magnes i filtr RC Początkowo napisałem program obrotościomierza i wszystko działa ok. A Teraz po małych zmianach nic nie zlicza. Wykorzystuję Timer1 $regfile = "m16def.dat" $crystal = 1000000...
chciałbym zliczać impulsy generowane przez transoptor szczelinowy mam taki kod $regfile = "m8def.dat" $crystal = 1000000 Dim Wynik As Long Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portb.0 , E = Portd.3 , Rs = Portd.2 Config Timer1 = Counter , Edge = Rising Do Timer1 = 0 Start Timer1 Wait...
Zaczynam dopiero programować i mam problem z TIMER = COUNTER . Chce by o zliczeniu ilości impulsów procesor wykonał np: zmianę stanu portu lub coś innego . To jest program : [syntax=bascom] $regfile = "m32def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Porta.2 , Db5 = Porta.3 , Db6 = Porta.4 , Db7 = Porta.5 , E = Porta.1...
Nie bardzo wiem dlaczego wogóle to nie chce wykonać podprogramu po otrzymaniu na noge ICP1 czyli portb.0 opadajacego zbocza. Nic się nie dzieje, co robię nie tak? Mój program: $regfile = "m8def.DAT" $crystal = 8000000 $baud = 9600 Config Portc = Output Set Portc.2 Reset Portc.1 Reset Portc.0 Config Pinb.0 = Input Config Timer1 = Counter ,...
Naucz się przerwań. Wykorzystaj Timer0 do generowania przerwania co np. 1s- jeśli ten czas Ci wystarczy. Czyli ustaw Timer0 jako timer. Ustaw Timer1 jako counter i zliczaj impulsy co 1s. W przerwaniu co 1s od Timer0 niech Timer1 zaczyna zliczać impulsy. I co 1s wyświetl liczbę impulsów i wyzeruj Timer1. I od początku. Całą koncepcję powinieneś zmienić.
Właśnie mam już cały program gotowy w bascomie , nie umiem w tej chwili na tyle dobrze C żeby napisać obsługę PCF, dwóch DS18B20 plus MPX4115. Także chodzi właśnie mi tylko o rozwiązanie pomiaru ciśnienia co 5-10 minut. Ok doszedłem wkońcu jak to zrobić . Skoro program spełnia oczekiwania programisty, to musi byc dobry! Niemniej jednak te 3 przedstawione...
W programie masz bałagan, ale pewnie większym problemem są tu schemat i założenia. PWM 8Bit przy 16Mhz to wyjdzie 62,5kHz. Nawet małe silniczki mają bezwładność na poziomie 10ms więc to chyba niepotrzebne. Przy Twojej prędkości musiałbyś duży nacisk położyć na ten układ ze sterowaniem tranzystora. Dla tego PWM proponuję użyć jakiegoś preskalera. Potem...
Kolego bykham w ten sposób nie uda Ci się osiągnąć stałej czasowej np. te 100ms. W zależności ile uP wykona przerwań ten czas raz będzie krótszy, raz dłuższy. Raczej spróbuj to wykonać według poniższego programu. Kod: [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 1000000 Dim F As Word , Pomocnicza As Byte Config Portd.5 = Input 'T1 (Counter1)...
'freq miernik do 5MHz '2010.08.12 $regfile = "m8def.dat" '$crystal = 11059200 '$crystal = 14745600 $crystal = 16000000 Config Lcdpin = Pin , Db7 = Portb.2 , Db6 = Portb.3 , Db5 = Portb.4 , Db4 = Portb.5 , E = Portc.2 , Rs = Portc.4 Config Lcd = 16 * 2 Dim Ccount As Byte Dim Maincounter As Long Dim C_counter As Word Config Timer0 = Timer ,...
czesc mam taki projekcik obrotomierza. program wyglada tak: $crystal = 4000000 $regfile "m8def.dat" Config Lcdbus = 4 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Pb.2 , Db5 = Pb.3 , Db6 = Pb.4 , Db7 = Pb.5 , E = Pb.1 , Rs = Pb.0 Set Portd.2 ' Miernik prędkości obrotowej 'licznikiem 0...65535 jest Timer1 Dim Wynik As Long Config Timer1 = Counter...
Witam. Chciałbym sobie zrobić elektroniczny licznik (prędkościomierz) do motoru. Zamysł jest taki: Procesor Attiny2313 zlicza impulsy podawane przez czujnik optyczny z myszy komputerowej. Znając czas, obwód koła itd. możemy wyliczyć prędkość. Jest jednak problem. Mianowicie po włączeniu silnika licznik zaczyna wariować... pokazuje jakiś liczby, często...
Uruchomiłem wszystko zgodnie z tym ale nie wskazuje wyniku gdzie jest błąd Sygnał z generatora na razie podaje na pin D7 $regfile = "m8def.dat" $crystal = 8000000 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 Config Timer1 = Counter , Edge...
$regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.6 , E = Portd.1 , Rs = Portd.0 Config Pind.5 = Input "do przerywacza przez kondensator Cursor Off Cls Lcd "Szerokiej Drogi!" ; Lowerline Lcd " .... " Wait 5 Cls Dim Wynik...
Znalazłem taki kod w sieci: [syntax=basic4gl] $crystal = 4000000 $regfile = "m8def.dat" Dim Wynik As Long Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.6 , E = Portd.1 , Rs = Portd.0 Config Timer1 = Counter , Edge = Rising Cls : Lcd "Obrotomierz" : Wait 1 Do Timer1 = 0 Start Timer1 Wait 1 Stop...
Czy mógłbyś jeszcze napisać czym jest ta zmienna D_v i rzuć okiem na te moje wypociny[syntax=basic4gl][/syntax] $regfile = "m32def.dat" $crystal = 16000000 Config Portc.0 = Output Config Portc.1 = Output Config Portb.1 = Input Set Portb.1 Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.0 , Rs = Portb.2...
Zrobiłem poniekąd tak jak panowie napisali, z wyjątkiem pomiaru oscyloskopem, bo po prostu nie mam. Dodałem do kodu linijkę: Config Timer1 = Counter , Edge = Rising , Noise Cancel = 1 , Capture Edge = Rising , Compare A = Disconnect , Compare B = Disconnect , Clear Timer = 0 Właściwie to powiększyłem o kilka szczegółów i teraz działa, ale... obroty...
The interrupt execution response for all the enabled AVR® interrupts is four clock cycles minimum. After four clock cycles the program vector address for the actual interrupt handling routine is executed. During this four clock cycle period, the program counter is pushed onto the stack. The vector is normally a jump to the interrupt routine, and...
$regfile = "M16def.DAT" $crystal = 8000000 $baud = 57600 Dim Czestotliwosc As Long Config Timer1 = Counter , Edge = Rising Print "Licznik" Enable Interrupts Enable Timer1 Do Start Timer1 Wait 1 Stop Timer1 Czestotliwosc = Counter1 Print "Freq: " ; Czestotliwosc Counter1 = 0 Loop Sygnał podaję na portb.1 i wszystko śmiga. Nie wiem tylko dlaczego nie...
WItam kolegów jest taki problem podaję na wejśie T1 atmega8 przy kwarcu 16Mhz impulsy o okresie 11us co daje około 90kHz i procek zlicza jak należy bo porównuję z oscyloskopem, ale problem rozpoczyna się gdy włączę INT0 na którym też są te same impulsy ,gdzie sprawdzany jest kierunek obrotu enkodera , wtedy licznik zlicza głupoty w zasadzie około dwa...
Witam Potrzebuję oprogramować w najprostrzy sposób Attiny2313 i z [url=http://www.cyfronika.com.pl/kityavt... kodu zostawiłem tylko sam licznik impulsów bo nie potrzebuję wyświetlacza, ale nie wiem co dalej bo potrzebuję wiedzieć ile impulsów na sekundę będzie odpowiadało np prędkości 5km/h. Zliczanie nie musi być dokładne gdyż nie...
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 ,...
Na wewnętrznym to się nie ma co dziwić że źle chodzi a do kalibracji i tak potrzebny jest kwarc nawet wystarczy zegarkowy na Timer2 A to procedura kalibracji dla ATmega169 /***************************************... * * Function name : OSCCAL_calibration * * Returns : None * * Parameters : None * * Purpose...
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ć?...
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....
Witam, chciałbym prosić o pomoc przy przerobieniu mojego kodu tak by przy użyciu przerwań i dwóch rejestrów przesuwnych 74HC595 można było multipleksować dwu cyfrowy 7 segmentowy wyświetlacz LED. http://obrazki.elektroda.pl/6033782900_1...
Witam! Zbudowałem sobie obrotomierz. Jest on poskładany z kilku części. http://www.elektroda.pl/rtvforum/topic61... Z tego schematu trochę korzystałem ale zrobiłem to trochę inaczej, zenerkę mam zamiast 8v2 to 7v5, opornik 10K mam w obwodzie emitera tak samo kondensator 220nF, dodatkowo do bazy mam podpięty jeszcze jeden rezystor 100K który z...
Temat enkoderów (w wydaniu praktycznym) jest mi niestety jeszcze mało znany więc licze na krytyczne uwagi i nie boje sie sformułowań, "że to nie będzie działać". Ale zrobiłem coś takiego:patrz plik(pominąłem rysowanie części rzeczy przy mikroklocku, jakiś kwarc itp). Co do kodu w Bascomie, to nie wiem czy o to Ci chodzi (na razie nie ma żadnych przeliczników...
Ja nie widzę problemu. :D Timer1: CONFIG TIMER1 = COUNTER | TIMER | PWM , EDGE=RISING | FALLING , PRESCALE= 1|8|64|256|1024 , NOISE CANCEL=0 |1, CAPTURE EDGE = RISING | FALLING , CLEAR TIMER = 1|0, COMPARE A = CLEAR | SET | TOGGLE I DISCONNECT , COMPARE B = CLEAR | SET | TOGGLE I DISCONNECT , PWM = 8 | 9 10 , COMPARE A PWM = CLEAR UP| CLEAR DOWN | DISCONNECT...
Witam, wie ktoś jak łączyć programy chciałbym połączyć dwa takie zeby wszystko dzałał prawidłowo: Dim Wynik As Long Dim Wynik2 As Long Dim Czas As Long Config Timer1 = Counter , Edge = Rising Cls : Lcd "Obrotomierz" : Wait 1 Cls Do Timer1 = 0 Start Timer1 Wait 1 Stop Timer1 Czas = Czas + 1 Wynik = Timer1 * 6 If Wynik > Wynik2 Then...
Witam, buduje obrotomierz oparty o czujnik hala, Proszę o sprawdzenie programu do tego schematu. I o wszelkie wskazówki co można by było zmienić. Mam jeszcze pytanie jak w programie bascom ustawić up żeby chodził na zewnętrznym kwarcu 8Mhz? [syntax=basic4gl] $crystal = 4000000 $regfile "attiny2313.dat" Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2...
Kod programu jest wyżej, ale podam jeszcze raz (tak jaki jest u mnie): $regfile = "attiny2313def.dat" 'attiny2313 $crystal = 1000000 ' 1MHz Config Portb = Output Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.0 , Rs = Portb.2 Config Lcd = 16 * 2 'wyświetlacz 2 linie po 16 znaków Cursor Off 'wyłączenie...
Jestem początkującym w programowaniu mikrokontrolerów , próbuje zrobic licznik obrotów/min wynik ma być wyświetlany na dwóch wyświetlaczach led7 seg. wyjście z portów steruje cd4543 a ten układ na darlingtony uln2003 z nich lcd. Dlaczego tak ? Ponieważ docelowo maja być duże wyświetlacze led. Problem polega na tym że w Bascomie nie wiem jak wyswietlić...
$crystal = 10000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2 Dim Ccount As Byte Dim Maincounter As Long Dim C_counter As Word Dim Tuning As Word Config Pind.2 = Input Config Pind.5 = Input Config Pind.6 = Output Config Pinb.0 = Output Load Timer0 20 Set Portd.6...
Nie przeczytales mojego postu :| Do kierunku uzywam kontaktronow bo tutaj jest w miare statyczna pozycja. Do predkosci zastosuje transoptor i czujink szczelinowy (takie cos jak w myszce). Ale moja wyobraznia szwankuje, jesli mam kolko z dziurkami kotre przcina promien w czujniku to jest prosto. Ale do niego mam wal i na gorze lopatki - i jak tu liczyc...
Siemka, ostatnio chciałem sobie podłączyć obrotomierz do skutera ale zobaczywszy ceny na allegro postanowiłem zmontować taki obrotomierz sam. Jako ze bawiłem sie juz w arduino itp i miałem pare czesci to zamowilem tylko uC atmega8 bo reszte komponentów miałem. Złożyłem jakoś ten procesor podłączyłem do Timera1 kabel owiniety w okół kabla WN ok 10-12...
Witam Procesor przechodzi w stan Powerdown po ustalonym czasie kiedy zmienna L=1. Ustawiłem wybudzanie z przycisku (podanie 0 na int0) no i nie działa . Przepatrzyłem już chyba wszystkie tematy na forum i robiłem z milion kombinacji. Już nie mam pojęcia co robić czy to może być wina BASCOM, procesora , prosilbym o konkretne wskazówki jak ustawić aby...
$regfile = "attiny2313.dat" $crystal = 10000000 $hwstack = 32 $swstack = 8 $framesize = 16 Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.1 , Rs = Portb.2 'konfiguracja podłączenia LCD,na płytce testowej Config Lcd = 16 * 2 Config Timer1 = Counter , Edge = Falling , Noise Cancel = 1 , Prescale = 1 Config...
KaJakKrzysztof: W katalogu Bascoma w program files masz katalog Samples. Jest tam o ile się nie mylę zegarek, jakiś bardziej skomplikowany zegarek i mnóstwo innych przykładów zastosowań timerów, przerwań itd. Na pytanie - czy coś takiego będzie działać odpowiedz sobie sam, załaduj program do AVR-ka. Timer od countera różni się tym, że służy do ODLICZANIA...
Witam, Jak w temacie zaznaczam, że jestem początkujący w C a moje pytanie związane jest z próbą rogryzienia kodu w C a przy okazji zrozumienia do końca funkcji Compare. Znalazłem taki kodzik: #include <avr\io.h> #include <avr\interrupt.h> #include <avr\iom8.h> #define ICP PINB0 //define ovrflow counter uint16_t ov_counter; //define...
programik należy doszlifować, pisałem go 5 minut działa w przerwaniach od transoptorów jak będę miał więcej czasu to pomyślę i jak elektroda będzie lepiej działała to jest druga moja "ta" odpowiedź bo pierwsza bardziej obszerna( działanie programu) wywaliła mi się po napisaniu pół A4, można się zniechęcić.....do ponoiwnego pisania. Wtajemniczeni napewno...
witam! Chcialem prosic o pomoc osoby bardziej doswiadczone, mianowicie mam problem w tym, ze nie chce mi uklad wejsc w obsluge przerwania od timera1, ktory ma liczyc. Projekt ma dzilac tak, by po pojawieniu sie zbocza opadajacego ma wejsc w obsluge przerwania, a nei chce tego mi zrobic :( oto wycinki programu...: $lib "glcdks108.lbx" $crystal...
Witam . Chciałem zrobic tester pomp opryskiwaczy . Chodzi o mierzenie wydajności pompy w litrach na minute a moje pytanie czy nie bedzie gubił impulsów podczas wykonywania przerwania . Pomiar co 1 sekundę a wydajność pomp od 40l do 260l / min [syntax=basic4gl] $crystal = 16000000 $regfile = "m32def.DAT" Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4...
1. Pierwsza moja płytka. W eaglu nie mogłem się odnaleźć (elementy). Załączam schemat. Pijopic, jak możesz, to zrób mi wzór płytki. Jakbyś się już bawił, to dorzuć jeszcze kwarc, ok? 2. Jabel J-91 wygląda dość ciekawie. Ten układ dostosowujący myślę, że będzie dobry. Dobrze myślę? Znalazłem taki kod: $crystal = 4000000 $regfile "m8def.dat"...
Prosze o pomoc co moze byc zlego w tym "prostym" kodzie na zegarek nie wiem ale nie chce dzialac na mojej Atmedze 8. mam Atmege ktora chodiz na zegarze wewnetrznym Dim G As Byte Dim M As Byte Dim S As Byte Dim X As Byte Dim W As Word Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Porta.3 , Db5 = Porta.4 , Db6 = Porta.5 , Db7 = Porta.6 , E = Porta.2...
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...
Witam, robię obrotomierz na atmega8. Przy niskich obrotach układ działa raczej dobrze, ale kiedy dodaję gazu to na wyświetlaczu pojawiają się krzaczki. Kiedy obroty znowu spadają układ działa poprawnie. Mam kondensator 100n i 2200uf przy procku. Kabel owinięty wokół przewodu WN idzie do timer1 procesora, podłączony bezpośrednio. Czego mi brakuje w układzie?...
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...
Witam wspólnotę chciałbym zaznaczyć że z wykształcenia jestem mechanikiem, a z programowaniem nie miałem wcześniej styczności. Przeczytałem książeczkę która mowiła o programowaniu w jezyku bascom, i stworzyłem taki o to kod programu. [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 8000000 Config Timer0 = Timer , Prescale = 256 'licznik do odmierzania...
Witam! Tworzę kontroler swojej deski elektrycznej. Wszystko idzie po mojej myśli poza... Mnożeniem zmiennych przez liczby zmiennoprzecinkowe. Otóż stworzyłem taki kod: Dodano po 19 Więc tak.. Typ zmiennych A i B zamieniłem na Single, ale dalej mnie to nie satysfakcjonuje, bo miała być to zmienna "pojedynczej precyzji" czyli jak zakłądam tylko jedna...
ok zrobilem cos takiego , wyjasnie jeszcze zasade dzialania mamy dwa sygnaly z silnika 1. sygnal zaplonu ( 4 impulsy na cykl pracy) 2 sygnal pierwszego cylindra ( jeden impuls na cykl pracy , pomiedzy impulsami zaplonu) program dziala tak ze zeruje licznik za kazdym razem wystapienia sygnalu 1cylindra , nastepnie przy kazdorazowym sygnale zaplonu ,...
A kolega rozumie różnice pomiędzy pracą w trybie timer i counter ??? ;)
Witam. Mam wersję demo BASCOM−a AVR, W edw Nr.5/2000 jest zamieszczony schemat wraz z kodem zródłowym Mikroprocesorowego miernika częstotliwości na AT90s2313 (AVT-3003). Mam prośbe o skompilowanie mi tego programu. Jeżeli bedzie ktoś chętny to zamieszcze wersje zródło na forum lub przeslę emailem. A może macie już wersję gotową Hex Pozdrawiam...
zobacz sobie temat: http://www.elektroda.pl/rtvforum/topic81... program będzie bardzo podobnie wyglądał. Chodzi mi o Timery. Dodano po 2 ale czy te diody mają się świecić cały czas to znaczy, że jeśli będzie więcej impulsów niż 200, to mają się świecić wszystkie 3 diody czy tylko 3 dioda?? Tak na szybko napisałem( nie testowałem ale powinno działać):...
config timer1 counter atmega32 timer1 counter timer1 winavr
ekran dotykowy monitor wyprowadzić akumulator tda7294 mostek
zmywarka whirpool wgranie plików rozruchu
Amica OKP6651S – okap nie działa po gwarancji, typowe usterki i naprawa Canon MP140 – optyczny czujnik położenia głowicy, typ enkodera liniowego, transoptor