Podciągnij wejście do plusa wewnętrznym rezystorem. Wejście T1 to PD5. [syntax=basic4gl]PORTD.5 = 1[/syntax]
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...
] 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...
Problem polega na tym, aby pomierzyć ilość impulsów jaka upływa pomiędzy kolejnymi pomiarami czujnika. Chodzi o to żeby timer1 zliczający impulsy po wykonaniu pomiaru przez czujnika wyświetlał ich ilość, a następnie zliczał kolejne impulsy upływające do wykonania 2 pomiaru itd. Zamiast czasu podawać na monitor zliczone impulsy pomiędzy kolejnymi pomiarami....
No dobra, udalo ci sie polechtac moja proznosc wiec moze zrobimy tak. Opisze tutaj przykladowego mekafile-a z nastawieniem na WinAVR, Atmega8 i STK200 tak aby inni tez cos z tego mieli. W zasadzie wszystko jest opisane w angielszczyznie no ale jakby kto nie umial to daje po polsku. # Hey Emacs, this is a -*- makefile -*- #---------------------------------------...
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
o kurde... przegladalem wszystko ale jakos mi sie wymknelo :/ dzieki :) bardzo fajny programik :) mam jeszcze takie pytanie: (BASCOM AVR i atmega8) czy jest mozliwe wpisywanie wartosci z tabeli (DATA) ale nie do calego portu tylko do 7 jego pinow? np port D ma 8 bitow ale potrzebuje jego wejscie nr5 jako wejscie timera pracujacego jako counter a na...
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...
Witam!! pisze sobie program do alarmu samochodowego sterowanego z fabrycznego zamka centralnego. w emulatorze wszystko cacy w rzeczywistosci niestety nie :( klopot poleg na tym, ze uklad nie reaguje na zadne impulsy wejsciowe. podawalem nawet bezposrednio zwierajac piny procka i nic - brak reakcji... za przyklad podam programik ponizej uklad wyswietla...
Mam mały problem z programem napisanym w bascomie , mianowicie założenia są takie jest to odbiornik pilota IR na atmega 8 chodzi mi o sam algorytm dekodowania sygnału , który ma dekodować wszystkie rodzaje pilotów obojętnie czy są w standardzie RC5 czy SONY na wyświetlaczu LCD mam mieć wyświetlane umownie wartość jedynek i zer i problem polega na tym...
Witam, postanowiłem dodać do programu pomiar temperatury mam czujnik DS18B20 , tylko że kod programu odpowiedzialny za sterowanie czujnikiem opóźnia działanie encodera ,gdzie jest tutaj błąd może czegoś nie uwzględniłem w tym kodzie ? poniżej cały kod [syntax=basic4gl] 'Filename Encoder_100.bas 'Version 1.00 'Date 2012-03-19 'Purpose Test of ALPS STEC11B13...
Witam, Chciałbym napisać jakiś najprostszy program w VB do obierania wartości zmiennej wysyłanej przez Atmegę, wysyłana jest zmienna Lngfreq Program wgrany na atmęgę poniżej [syntax=basic4gl] 'Filename Encoder_100.bas 'Version 1.00 'Date 2012-03-19 'Purpose Test of ALPS STEC11B13 encoder (reichelt.de) 'Author Georg Latzel, DL6GL 'Copyright (c) Georg...
Witam, Jak można zainicjować dwa odrębne pola tekstowe tak aby wyświetlały dwie zmienne wysłane przez UART -Atmegi kod VB [syntax=basic4gl] Option Explicit On Imports System Imports Microsoft.VisualBasic Imports System.Configuration.ConfigurationSettin... Imports System.Windows.Forms Imports System.IO Imports System.Data Public Class Form1 Public comm_stat...
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...
odnosnie zegarka to ja bym to zrobil na timer1 - 16 bitowy licznik, i uzaleznil to od przepelnienia tylko nalezy ustawic preskaler na 256 wpisac poczatkowa counter=conter+34286 oczywiscie przy rezonatorze 8 MHz 8000000/256/(65536-34286) = 1 sekunda pozniej tylko zliczanie a i jeszcze jedna sprawa nalezalo by zmienic wartosc dwojkowa na kod BCD :)
kurcze mi nie wychodzi :| timer chodzi co 1s ale reszta do kitu Dodano po 25 program chodzi :) oczywiscie musisz go przerobic na wlasne potrzeby dodac tyle ile chcesz przekaznikow i zmienic czasy w programie bo tam jest 10s i 40s ten program jest przygotowany pod ATmega8 i kwarc 8MHz $regfile = "m8def.dat" $crystal = 8000000 Config Pind.0...
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,...
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...
Potrzebuję pomocy przy zamianie kodu "RFID Reader", tzn. żeby zamiast wyświetlania kodu karty na LCD uzyskiwać odpowiedni poziom na wyjściu 1z10 i czy jest to możliwe do zrealizowania na atmega8? Chciałbym użyć 8 ostatnich cyfr kodu karty. Posłużyłem się gotowcem, który był już na elektrodzie (dopiero uczę się bascoma i nie wiem jak się do tego zabrać):...
Jakiej wersji kompilatora używasz? Get RC5 domyślnie używa timera0 a Atmega8 to nie to samo co Atmega88 i timery są inne, inne rejestry sterujace. Zobacz do noty np. Timer/Counter Control Register TCCR0 w ATMega8 steruje preskalerem a w ATMega88 TCCR0B Timer/Counter Control Register B, dwa różne rejestry inne adresy, różne też są flagi zdarzeń timerów...
Czemu korzystasz z timer2 jako counter ? Zrób to na CTC na timer 2 a kwarc podłączyć jako zwykły. W takim układzie Wszystko działa na wewnętrznym oscylatorze a do zegara dochodza impulsy z kwarcu zegarkowego. Pozbadz się instrukcji Config timer2 = counter a kwarc podłącz pod xtal Pozdrawiam
W pseudokodzie: 1. Ustaw timer na częstotliwość powiedzmy ok. 100 kHz, przypisz do niego przerwanie i aktywuj przerwania 2. Stwórz dla każdego kanału zmienną typu PWM_CHn W przerwaniu od timera 1. Zmienna COUNTER = COUNTER + 1 2. dla każdego kanału 0...n: Jeśli COUNTER < PWM_CHn to zapal diodę, w przeciwnym razie zgaś 3. Ewentualnie jeśli chcesz...
Daj jakiś schemat. Bo już nic z tego nie rozumiem. Co ma wyzwolić opóźnienie? Bo Timer1= counter zlicza impulsy z PD.5. Czy na tę końcówkę podajesz impulsy jakieś?
Program to symulator bomby z Counter-Strike'a Kwarc wraz z kondensatorami podłączony. Czy Pin 1 (RESET) musi być podłączony do czegoś? Tak zdeklarowałem CONFIG LCD.
Dla kwarcu 4MHz jest to prescaler 64 i początkowa wartość licznika: 193 Dla kwarcu 8MHz prescaler to: 64 i początkowa wartość licznika: 131 To pokazuje kalkulator. Chciałoby się zakrzyknąć : a nie mówiłem :-P Aby wpisać do Timer2 początkową wartość, to używamy poleceń: TCNT2=początkowa_wartosc Timer2= początkowa_wartosc Counter2=początkowa_wartosc...
. Zamierzam zrobić tak by mogli wprowadzić korektę (jeśli będzie potrzebna) i zapisać w eeprom. czy to dobry pomysł? Jakoś tak; $Crystal=12000000 Config Timer1 = Timer , Prescale = 8 On Timer1 Inter_1mS Inter_1mS: Counter1 = Counter1 + Licznik (64036 - wychodzi z obliczeń, że da to 1ms) /tu odliczę sobie 103/ Błednie to rozumujesz, albo błednie podałeś...
W czym problem? Dim counter as byte dim I_1_sum as single dim I_2_sum as single w pętli głównej: incr counter i_1_sum=i1_sum+biezaca_wartosc_z_adc i_2_sum=i2_sum+biezaca_wartosc_z_adc if counter=10 then counter=0 i_1_sum=i_1_sum/10 i_2_sum=i_2_sum/10 wyswietl_sobie i1_sum=0 i2_sum=0 end if P.S. Radzę używać więcej niż 10 - np 16 lub 32 *ew 8* -...
jakie jest ustawienie rezonatora wewnętrznego w atmedze 8 nowej? 1MHz Zmienić to można tylko fusebitami. Jeśli się boisz to tymczasowo - dla prób - możesz zmienić: "Counter1 = Counter1 + 34286 " na "Counter1 = Counter1 + 61629". Będzie prawie sekunda.
Ja wolę przerwania: Dim Sekunda as byte Config Timer1 = Timer , Prescale = 256 On Timer1 Odmierz_1s Enable Interrupts Enable Timer1 do loop end Odmierz_1s: Counter1 = Counter1 + 34286 Incr Sekunda Return Podałem ci "szkielet" programu do odmierzania 1 sekundy za pomocą timera1. Pamiętaj że procek musi go posiadać i musi być taktowany przez oscylator...
Nauczcie się wreszcie, że od sterowania licznikiem w trybie COUNTER podczas symulacji jest opcja PULSE. Czytanie instrukcji/helpa przecież chyba nie boli: The pulse generator can be used to supply pulses to the timer when it is used in counter mode. First select the desired pin from the pull down box. Depending on the chip one or more pins are available....
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...
No to coś napisałem na AVRStudio 4.05.0.181 (na kolanie) :) . Co prawda na ATmega8 , ale przeportowanie to pestka(niektóre wektory przerwań do skasowania/zmiany nazwy i "2313def.inc" zamiast "m8def.inc" , prędkość kwarcu Xtal też do poprawki...), raczej tu chyba nie ma rozkazów niezaimplementowanych w AT90S2313 . ;included in next file - line ".device...
Ogólnie nie pisze w bascomie. Rozumiem jak coś jest napisane, ale samemu raczej nic nie wymodzę. Załączyłem schemat z podstawowymi elementami każdego układu z mikrokontrolerem (kondensatory filtrujące, pull-up na resecie) http://obrazki.elektroda.net/10_12568564... Jedna dioda podpięta do wyjścia OC1A - wyjście PWM. Atmega8 ma jeszcze 2 takie...
Do drasmen: jeżeli chcesz aby układ zadziałał musisz przestawić fuse bity na wew. generator np. 8MHz a do pinów gdzie podłączasz kwarc musisz wpiąć kwarc zegarkowy 32.768kHz. Program dla autora tematu: 'Program wykorzystujący przerwanie od timera0(8 bitowego) generowane co 8ms 'jeżeli przerwanie zostanie wywołane 125 razy, otrzymamy 1 sekundę...
POWERSAVE (ATMEGA88) This mode is identical to Power-down, with one exception: If Timer/Counter2 is enabled, it will keep running during sleep. The device can wake up from either Timer Overflow or Output Compare event from Timer/Counter2 if the corresponding Timer/Counter2 interrupt enable bits are set in TIMSK2, and the Global Interrupt Enable bit...
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...
Dobra. 24C64 to 8KB, czyli już całkiem rozsądna pojemność. Wypróbuj ten szkielet programu, czy działa pilot jak należy, i poświęć chwile czasu na to by sprawdzić czy czas jest odmierzany tak jak należy. Nie za bardzo mogę to sprawdzić w symulacji programowej. Zanim zacznę robić coś więcej chcę mieć pewność, że kręgosłup programu jest OK. $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 =...
Próbuję odpalić zegarek RTC, ale brak reakcji, czy ktoś mógłby coś podpowiedzieć? Pomóc w uruchomieniu?[syntax=c]#include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #define F_CPU 8000000 ISR (TIMER2_OVF_vect) // obsługa przerwania licznika przepełnienia { PORTD = 0x00; _delay_ms(250); PORTD = 0xFF; _delay_ms(250);...
w końcu zrozumiałem co miał na myśli tmf , jeśli dobrze rozumiem to miałbym podać te 6 sygnałów na wejścia i nie korzystać z timera jako countera tylko zrobić przerwania min połowę od najkrótszego impulsu, stany zapisywać w zmiennych, zrobić porównanie poprzedniego i jeśli zaszła zmiana np z 0 na 1 to wtedy tak jakby robię timer na zbocze narastające,...
Przede wszystkim musisz zacząć kolego od poznania timerów. Do odmierzenia czasu używamy timerów ponieważ zlicza nam czas w tle działania procesora. Używając polecenia wait zatrzymujesz kompletnie uC na ten czas. Konfiguracja dla AtMega8 8Mhz u mnie wygląda tak: Config Timer1 = Timer , Prescale = 256 ''''konfiguracja timera On Timer1 1s ''''przy przerwaniu...
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 jestem tu nowy aczkolwiek zaawansowany w bascomie AVR Musisz ustawić prescaler i wpisać wartość counter0 lub timer0 żeby przerwanie przychodziło co określony czas. Osobiście się z ty nie zgadzam bo jeśli INT0 to nie timer tylko podanie standardowo zera na jedno z wejść w 8515 jest to PD2 lub INT1 PD3. Ja osobiście dałbym waita pod koniec przerwania...
Ok. ZbeeGin masz rację. Set S1 nie ustawi pociągania dla PC0 bo rejestr PINC jest tylko do odczytu, czyli nic do niego nie wpiszemy. Już doczytałem i trzeba ustawić Set portc.0 na początku rpogramu (przed pętlą) i dopiero wtedy dołącze rezystor podciągający. Jęsli chodzi o Load 250 to oznacza, że Timer0 ma zliczyć 250 impulsów po czym zostanie przeladowany....
Z noty katalogowej ATmega8515 (pierwsza strona): • Peripheral Features – One 8-bit Timer/Counter with Separate Prescaler and Compare Mode – One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode – Three PWM Channels – Programmable Serial USART – Master/Slave SPI Serial Interface – Programmable...
To nie Bascom jest przyczyną tylko źle napisany program ;). 1. odczyt timera1 16bit odbywa się po przez rejestr pomocniczy TEMP, ten rejestr jest też używany przez inne procedury i funkcje i jeśli jest użyty to właśnie niszczona jest wartość High timer1 bo ona tam jest wpisana gdy używasz komendy. wpisując tak timer1 do tablicy możesz gubić High timer1....
witam , potrzebuję pomnożyć 7razy impulsy wejściowe , częstotliwość wej nie jest duża max 200hz , znalazłem podobny program na pic16 mnożacy 39razy i kawałek kodu na atmege8 również mnożący 39razy , jednak zupełnie nie mam pojęcia jak cos takiego napisac w bascomie kod dla pic: Device 16F628A Config INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_ON...
Witam! Jak rozwiazac problem zliczania impulsow z 8 kanalow np. na ATmega8535? ATmega8535 ma 3 wejscia typu timer/counter (ATmega128 tylko 4) a ja potrzebuje zliczac impulsy z 8 zrodel (wentylatory)-w celu pomiaru ich predkosci. CZy jest jakas mozliwosc podlaczenia tego przez jakis multiplekser (jak tak to jaki i jak to podlaczyc )?? Poniewaz jestem...
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. Prescaler jest to dzielnik częstotliwości. Jeżeli użył byś kwarcu 8 MHz oraz timera 0 przepełnił by ci się on 31250 razy.Aby zmniejszyc częstotliwość wyrzucanych przerwań używa sie prescalera. Np ustawiając prescaler 64 uzyskasz przerwanie co 0,00204800 s. Co do drugiego pytania to w BASCOM'ie licznik się zeruje chyba że wpiszesz mu jakąś wartość....
witam ze specyfikacji wyczytalem ze ten procesor ma dwa wyjscia pwm, jedno pod wyjsciami pd4 (oc1b) i pd5 (oc1a) (timer1), a drugie pod wyjsciem pd7 (oc2) (timer2) .... pierwsze wyjscie dziala bez problemu natomiat drugiego nie moge skonfigurowac (pod bascom-em), wyskakuje mi error86 przy lini w ktorej konfiguruje timer2 ... nawet kiedy wpisuje: config...
counter atmega8 bascom counter counter bascom
ładowarka piszczeć zbiornik paliwo przewód odblokuj samsung
myjki ciśnieniowej karcher elektronika myjki ciśnieniowej karcher elektronika
Mercedes Actros MP3 – wymiana ECU, komunikat CODE, brak rozruchu po zmianie komputera i pastylki Tata Indigo Marina – lokalizacja czujnika uderzeniowego SRS i wyłącznika bezwładnościowego