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)...
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
Po co podłączasz rezonator kwarcowy, skoro działasz na wewnętrznym RC? Proszę skojarzyć z Real Time Counter with Separate Oscillator
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...
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...
Nie,ma liczyć litry tak jak dystrybutor . Dodano po 2 Nie wiem w jaki sposób dodawac litry do zmiennej po przekroczeniu okreslonej liczby impulsów z przepływomierza to co znalazłem to liczone wszystkie w czasie a tu chyba chodzi o przepełnienie licznika Czas tu nie ma znaczenia! Użyj dowolny timer w charakterze licznika (Counter), i tak jak sugerowano...
Źle zrozumiałeś ten zapis. Część odpowiedzialna za taktowanie co 10us wygląda tak: ... _pulse_in5: (at)genus(9) ; THIS FOR 10 US UNITS but approx. depends on XTAL ; you can remove the above call and tailor this routine ; when remarked 10 cycles/loop are needed and for 1 Mhz this is 10 uS ; for 4 MHz you need additional 30 cycles and the...
(at)excray On timer1 impulsuj znaczy: wywołaj przerwanie przy przepełnieniu Wpisując do rejestru timera określone wartości SKUTECZNIE steruję przebiegiem wyjściowym. Więc wybór rodzaju przerwania jest OK. Recz w tym że OPRÓCZ oczekiwanych przerwań wskakują mi jakieś obce (at)nowyARM Czytałem, a po Twojej wskazówce przeczytałem jeszcze raz. Pomijając...
Czy to poprawny zapis do uśredienia wyniku z 60 pomiarów kodu co wyżej podawałem (*) pytam z czystej ciekawości czy to poprawna forma To nie jest 'uśrednienie',- to jest zbyteczne rozszerzenie rachunku wydajności, które jest równoznaczne z pomiarem impulsów w czasie 60 sec. Inaczej, zamiast odczytywać zawartość Countera1 po zliczeniu 250 4-milisekundowych...
Po przepełnieniu licznika on się zeruje automatycznie? W większości trybów licznik zeruje się podczas przepełnienia. Wyjątkiem są niektóre tryby PWM, np. Phase Correct PWM Mode: The phase correct PWM mode is based on a dual-slope operation. The counter counts repeatedly from BOTTOM to MAX and then from MAX to BOTTOM.
] 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...
Witam Proszę o pomoc. Potrzebuję wykonać okład mierzący bardzo krótkie odcinki czasu. START podanie impulsu na któryś pin, STOP podanie drugiego impulsu na kolejną nóżkę. Procesor Atmega32 język Bascom. Jaki najmniejszy odcinek czasu mogę zmierzyć ? Jak wygląda procedura pomiaru czasu miedzy Start a Stop? Bardzo proszę o podanie fragmentu kodu. A czy...
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...
Jeśli chodzi o soft, to powstał szkielet programu. Na razie odmierza to czas, i powinno obsługiwać pilot RC5. W polach „A:” – powinien wyświetlić się adres pilota, „C:” – numer przycisku z pilota. W symulacji programowej poszło, ale na razie nie mogę przeprowadzić prób z braku modelu. Ale żeby stworzyć wersje BETA...
Łap, bo jak się długo męczy temat a efektów nie widać to można popaść w depresję a tego nie chcemy :D Tego LM293 to kupiłem chyba ze dwa lata temu i tak sobie leżał bo używam innych driverów, ale pomyślałem, że się może kiedyś przydać. No i się doczekał :D Nie wiem jaki jest ten Twój silniczek, ale mój pochodzi z Walkmana. Pump up the volume żeby usłyszeć...
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ę...
Help > Config serialin The following internal variables will be generated for UART0: _RS_HEAD_PTR0 , a byte counter that stores the head of the buffer _RS_TAIL_PTR0 , a byte counter that stores the tail of the buffer. _RS232INBUF0 , an array of bytes that serves as a ring buffer for the received characters. _RS_BUFCOUNTR0, a byte that holds the number...
W rozdziale 13 pisze: 13. 8-bit Timer/Counter 0 with PWM Wyżej Ci wstawiłem kod do przetestowania.
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...
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).
Heh troszkę ruszyłem do przodu. Okazało się że cały portc był odwrócony tzn MSB z LSB zamienione. Naprawiłem to programowo :) ekrany pięknie się kolorują :D Jutro postaram się ładnie uporządkować program i wrzucę dla potomnych bo ciężko mi było znaleźć w necie obsługę tego LCD w bascomie :) EDIT: Tak jak wspominałem wrzucam dla innych ;) [syntax=basic4gl]'Obsługa...
Dobra. Wziąłem pierwszego lepszego pdf-a ze strony producenta. Są tam dwie końcówki ( T0,T1) . To są timery??? Dodano po 5 Doczytałem się też, że są tam dwa timery - jeden 16 bit ( counter 1) i jeden 8 bit ( counter 2). Czyli, że do 16-bitowego mam odwoływać się timer1 ??? do ilu zlicza 16-bitowy a do ilu 8-bitowy??? czy wiedząc,że jeden ma 8 bitów...
Wiesz co? Zanim zacznę konfigurować rejestry spójrz na stronę 136 PDF ATmegi 1281. Jest tam wymienionych kilka źródeł przerwań Timera4 ale nie ma takiego jak ty używasz czyli :"On Oc4a Timer4_int". Może najpierw wybierzesz sobie właściwą nazwę przerwania? Może potrzebujesz przerwania : "On OcF4a Timer4_int"? NIe wiem jakich pdf-ów TY używasz, ale ja...
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....
No to koledzy mnie uspokoili trochę :) Tak sobie czytam datasheeta od atmegi 162 i nie mogę się połapać z tymi PWM-ami... Bo widzę tak : timer/counter0 z PWM timer/counter2 z PWM i co dalej ? Gdzie te pozostałe PWM ? Może któryś kolega byłby tak miły i mógłby w miarę łopatologicznie wyłożyć - jak to się je :) Czy Bascom wspiera sprzętowy PWM w ogóle...
Witam, czy ktoś może miał taki problem jak ja, a polega on na tym, że po pewnym czasie moduł przestaje odbierać? Korzystam z bibliotek Pana Mirka, tylko funkcję sprawdzania czy pojawiły się dane wrzuciłem do obsługi przerwania timera, która się wywołuje co 250mS. Wygląda to tak: arcyimperator , co u Ciebie oznacza NSEL_RFM12_DOWN oraz NSEL_RFM12_UP?...
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...
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...
Pin konfigurowany jest na początku, przed konfiguracją SPI. Dodano po 2 I jeszcze tradycyjne pytanie - chciałem mieć więcej wyjść Zrobiłem tak: [syntax=basic4gl] If Mid(tempstring2 , 6 , 6) = "LED1ON" Then Reset Led1 End If If Mid(tempstring2 , 6 , 7) = "LED1OFF" Then Set Led1 End If If Mid(tempstring2 , 6 , 6) = "LED2ON" Then Reset Led2 End If If Mid(tempstring2...
Zainstalowałem AVR Studio4 i lecę od początku z google i pdf na temat ASM i AVR Powiedzcie chociaż czy w dobrym kierunku zmierzam? Bo jak w złym to odpuszczam i daje sobie spokój, pobawię się migającymi diodami w Bascomie. Tam gdzie nie ma komentarza to nie wiem co to znaczy i co robi ale było w pdf lub innych opisach, jeżeli ktoś może mi wyjaśnić instrukcje...
Do Pawelj Nie będę wnikał co jest lepsze pomiar prądu czy też inne rozwiązania ale odpowiem Ci wprost na twoje pytanie dotyczące zliczania impulsów. Sygnały z impulsatorów podłącz pod 1 i 2 nogę Atmegi16 są to wejścia zliczające liczników Timer0 i Timer1 Skonfiguruj timery Config TimerX = Counter , Edge = Rising lub Config TimerX = Counter , Edge =...
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...
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...
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...
https://obrazki.elektroda.pl/9317464400_... Witam Przedstawiam stację meteo nad którą pracuję już kawałek czasu. Początek prac to też mój początek zabawy z Arduino. Zaczęło się od gotowego projektu malutkiej stacji z wyświetlaczem OLED. https://obrazki.elektroda.pl/5611267500_... Wtedy już samo wgranie programu do...
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...
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...
. 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ś...
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...
Witam, Jestem w trakcie budowy sferycznego wyświetlacza widmowego. Globus składa się z 40 diod LED RGB sterowanych procesorem ATmega328P. Pozostał do rozwiązana ostatni problem a mianowicie wykrywanie położenia pierścienia, na którym są umieszczone diody LED. Pierwsze, co przyszło mi na myśl to zastosowanie diody emitującej promieniowanie podczerwone...
Tak oczywiscie reset podciagniety. Okrojony do minimum program: $crystal = 7372800 $regfile = "m168def.dat" Config Aci = Off Config Lcd = 40 * 2 Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.0 , Db7 = Portb.1 , E = Portb.4 , Rs = Portb.5 Config Timer1 = Timer , Prescale = 64 On Timer1 Timer1_int Config Pinc.4 = Input '...
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...
romario4: dzięki, ale to nic nie daje. Ja już próbowałem zamiast capture1 dać timer1 i counter1 i za każdym razem identycznie - czyli kapa.... dziadek-nfc: tylko drgania jakich styków? Ja sygnał biore bezpośrednio z głównego komputera samochodu i puszczam go przez optoizolator. No chyba że drgania styków wtryskiwacza zakłócają sygnał komputera, ale...
uC zasilany z 5V. Po dłuższej przerwie (pauza na zaliczenie sesji) wziąłem się znowu za ten projekt. I tak... przegooglowałem neta i ze strony http://winavr.scienceprog.com/avr-gcc-tu... zapożyczyłem kod obsługujący timer input capture. Przerobiłem go pod potrzeby ATmega32, ale też do końca nie wiem czy poprawnie....
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, Chciałem skomunikować ze sobą 2 atmegi32 i mam z tym problem. Jedna atmega wykonuje pomiar z wejścia adc i próbuję wartość ADC wyświetlić na wyświetlaczu podłączonym do drugiej atmegi, ale zamiast wartości np 467 na wyświetlaczu uzyskuję jakieś przypadkowe cyfry np. 13 10 19 51 54 ... Podłączone jest dobrze RxD do Txd i podciągnięte rezystorami...
bezpośrednio z bascoma się nieda. trzeba by wpisać odpowiednią wartość do rejestru sterującego timerem ale niepamiętam dokładnie jak to sięrobi, trzeba by zajżec do noty katalogowej tam wszystko dokładnie opisane. ale mozna zrobić inna sztuczkę $regfile = "m8def.dat" Config Pinb.1 = Output $crystal = 1000000 Config Timer1 = Timer , Prescale...
ElKuba, a czy atmega8 i AtMega16 masz fabrycznie nowe, czy od kogoś ? Może ktoś wpisał fuse jak już napisałem w pierwszym poście: ...Napisany program testuję w programie Proteus 6.5. ... I teraz mam pytanie czy jest to problem wynikający z niedociągnięć programu proteus... Tak więc projekt testuję tylko wirtualnie za pomoca Proteusa, i dla atmega 8...
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 Mój problem to brak kompilacji przy konfiguracji Timer2 w tryb Counter Unknown CONFIG parameter Porblem polega na tym że w helpie BASCOM-AVR można konfigurować Timer 2 w tryb Counter. Wrzucam cały kod :[syntax=basic4gl] $regfile = "m16def.dat" $crystal = 16000000 Dim Freq As Long Const Licznik = 2789 Config Timer1 = Timer , Prescale = 256 Config...
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...
Korzystając z Waszych wskazówek przerobiłem program tak: Dim Test As Long ... Start Adc Do Wart_ac = Getadc(1) Cls Lcd Wart_ac ; Lowerline Lcd Test; 'poprawka Waitms 250 Loop End Czas: Stop Timer0 Stop Timer1 Czestotliwosc = Czestotliwosc * 64 Czestotliwosc = Czestotliwosc + Counter0 Test = Czestotliwosc 'poprawka Czestotliwosc = 0 Counter0...
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,...
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.
Nie wiem na które pcb patrzysz , to ostatnie do pełnej wersji z pomiarem prądu i napięcia ,patrzę i widzę że jest OK . pin40 i pin39 są podpięte do dzielnika kondensator żeby nie pływał pomiar zbytnio. nie widzę tego o czym piszesz . Wieczorem sprawdzę jeszcze raz i podam zaktualizowane . Ok jest wieczór więc zamieściłem na 2 str. schemat i pcb w eagle...
Hmm... A co ma cena procesora do ceny In-circut debuger-a ? Procesory kupuje się wielokrotnie, a debuger raz, po za tym dla AVR istnieją tańsze, nieoryginalne wersje - sam JTAG, bez obsługi DebugWire, już za trochę więcej niż 100PLN (np. na www.propox.com ) - również na USB. ATmega8 - 7-9PLN, możliwości : • Advanced RISC Architecture – 130...
Nie umiem odczytać temperatur z ds18b20. Rezystor podciągający jest(4.7k), VDD i GND też są podłączone. Linia danych podpięta jest pod pb.7 Aha wyświetliłem sobie też wartości odczytanych bajtów, zarówno 1szy jaki drugi mają wartość 0xFF. podaję kod może koś znajdzie błąd. Dim Cyfra(10) As Byte Cyfra(1) = &B00000101 Cyfra(2)...
Proszę bardzo: Config Timer0 = Timer , Prescale = 256 On Timer0 Odmierz_8ms Enable Interrupts Enable Timer0 Counter0 = 6 .... Odmierz_8ms: Counter0 = counter0 +6 .... instrukcje return
Po kilku dniach pracy urządzania stwierdziłem że jednak przydało by się żeby serwerek dodatkowo wysyłał dane do "https://thingspeak.com/" chociaż z termometru domowego. Próbowałem na rożne sposoby ale nie mam pojęcia jak to zrobić. Może ktoś z Was jest w stanie zmodyfikować kod ? Może kolega (at)bart-projects czyta ten temat? ;) (to ten sam kod co w...
widzę, że temat przygasł wiec ponownie prośbę... proszę o wrzucenie przykładowego programu na procesor atmega, gdzie po naciśnięciu przycisku dioda zapala się na 5 sekund i gaśnie. Liczę ze taki program pomoże mi zrozumieć zasadę działania komendy odliczajacej czas. Książka ani inne posty jakoś mi nie pomagają i nie mogę tego przeskoczyć. Liczę, że...
$regfile = "m16def.dat" $crystal = 8000000 Config Pinb.0 = Input Config Pinb.2 = Input P1 Alias Pinb.0 P2 Alias Pinb.2 Set Portb.0 Set Portb.2 Config Timer1 = Timer , Prescale = 256 On Timer1 1_sekunda Enable Timer1 Enable Interrupts Counter1 = 34286 Declare Sub Alarm Declare Sub Sys_off Dim Sekundy As Byte Dim Flaga1 As Bit Dim Flaga2 As...
Tak nie może być. Timer może pracowac jako timer lub jako counter. Nigdy razem. Skonfigurowałes timer jako timer, a chcesz czytać dane z counter/capture. To ci nigdy nie zadziała. Wpisz konfig countera który ci przesłałem i na tym kombinuj. Ostatecznie uzywaj sobie INT skoro ci działało i masz ta nóżkę jako wolną.
Jeżeli chodzi o notę atmega64 to wyraźnie jest napisane "6 PWM Channels with Programmable Resolution from 1 to 16 Bits" , chyba że ja tego nie rozumiem. Zgadza się. chodzi o Timer 1 oraz Timer3. Zobacz schemat takiego timera: Figure 46. 16-bit Timer/Counter Block Diagram Jeżeli chodzi o przyklad konfiguracji PWM w atmega64 to bardzo prosze o podanie...
Witam kolegów mam taki problem potrzebuje programu do mierzenia prędkości obrotowej silnika. Idea pomiaru jest znana, wykorzystywany jest do tego transoptor obiciowy. Ale to nie jest celem mojego wywodu. Potrzebuje krótkiego pomiaru obrotów zbudowanego na licznikach. Oscylator zewnętrzny 8MHz. Układ już wykorzystuje globane przerwania pochądzące od...
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 :)
Z przerwaniami nie jest tak trudno. Enable Interrupts Config Timer1 = Timer , Prescale = costam Timer1=costam2 Enable Timer1 On Timer2 etykieta Config Timer2 = counter , edge=falling Enable Timer2 On Timer2 etykieta2 coś takiego na przykład dobry zwyczaj to czas realizacji procedury pod daną etykietą był w granicach 10us, a wszystko pakuj do pętli głównej...
...A tak po za tematem jak ustawić timer żeby generował przerwanie co 1s bo nie za bardzo wiem bardzo małe wartości potrafię policzyć a to mi nie wychodzi? Przeanalizuj poniższy program. Ustawienia są banalne :) [syntax=basic4gl]$regfile "m8def.dat" $crystal = 8000000 Config Timer1 = Timer , Prescale = 256 On Timer1 1sek Counter1 = 34286 '8000000/256/31250=1s...
Używam zegara PCF8583, działa mi jego obsługa itp, natomiast mam problem z jego przerwaniami. Układ jest skonfigurowany by generować przerwanie co 1s, po którym procesor ponownie ustawia odpowiednie flagi w zegarze, bowiem samo przerwanie jest jednokrotne. W celu inicjalizacji przerwań od zegara używam procedury: Sub Init_alarm I2cstart 'generate start...
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...
Po całym dniu walki słabo opisałem mój problem bo już po prostu nie miałem siły :D Wyjaśniam... Zrobiłem sobie mikro serwerek LANowy na Atmedze32 i układzie ENC28J60. Z doświadczenia z tym układem i Atmegą wiem że znacznie stabilniej wszystko pracuje gdy mikroporocesor (Atmega) jest taktowana zegarem 25MHz z gotowego modułu ENC a nie własnym kwarcem....
Mam Taki zegarek na LCD oparty o Timer1: $regfile = "m16def.dat" $crystal = 16000000 Config Portb = Output 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 Cursor Off Cls Config Timer1 = Timer , Prescale = 256 Declare Sub Wysw_czas On Timer1 Odmierz_1s Dim...
Widzisz pier - pomyśl w przyszłości nad językiem C (namawiam cię gorąco), tam zrobienie nośnej w oparciu o sprzętowy CTC to pikuś i zobacz jak jasno - sam chyba zrozumiesz tu o co chodzi tu masz CTC i wypełnienie 50% // TIMER0 TCCR0 |= (1<<WGM01);// Tryb CTC (Mode 2) TCCR0 |= (1<<COM00)// Toggle OC0 on compare match...
Co do 1 to pokaż schemat + ew. wzór płytki. Tymczasowym rozwiązaniem może być użycie watchdoga. Co do 2 to w Sygnalvss testuj, czy na linii INT2 masz stan wysoki - jeśli nie, to impuls był za krótki i możesz go zignorować. Bardziej skomplikowany sposób: możesz dopuszczać tylko realistyczne zmiany prędkości, tj. teraz = Counter1 if Abs(poprzednio...
co to znaczy zegarek, licznik czasu rzeczywistego? Nie wiem czy do konca rozumiem twoj problem, bo chyba sam dokladnie nie wiesz co piszesz. Przerwanie moze ci sie wywolywac w roznych okresach czasu poniewaz timer0 i timer1 roznia sie iloscia bitow w counterze Dodano po 2 timer0 jest 8 bitowy, a timer1 16 bitowy Dodano po 1 i timer0 nie ma wyjsc na...
to wystarczy wyzerowac odpowiedni rejestr w uC odpowiedzialny za pracę timera 2 chodzi o rejestr TCNT2? Dodano po 2 i bit: Bit 3 – AS2: Asynchronous Timer/Counter2 ->wyzerować oraz Bit 0 – TCR2UB ? Dodano po 10 No i słusznie. C.6 pewnie też Ci nie działa Portc.6 działa. Tak, nie działa Portc.6 oraz 7 - czyli Tosc1 i Tosc2 - wcześniej pisząc...
Witam. Jestem początkującym w dziedzinie programowania na elektronice znam się dobrze. Chciałbym zbudować komputer pokładowy do mojej hondy civic i znalazłem na elektrodzie projekt z pod tego linku. http://www.elektroda.pl/rtvforum/topic22... Płytkę zaprojektowałem na nowo pod atmege128 reszta bez zmian. Wyświetlacz od Siemensa s65 ls020 podłączyłem...
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...
Szanowni koledzy czy ktoś z was może mi powiedzieć jaką mogę osiągnąć precyzję przy odmierzaniu czasu przy wykorzystaniu układu ATmega16 z zewnętrznym zegarem 8.000 MHZ(rezonator kwarcowy)? Morduje to już drugi dzień i nie mogę zrobić tego w sposób precyzyjny - na każde odmierzone 10 minut atmege spieszy o ok 20s - taka zwłoka jest dla mnie niedopuszczalna...
$crystal = 8000000 Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2 Dim Msek As Integer Dim Sek As Byte Msek = 0 Sek = 0 On Timer1 Zegar Cls Enable Interrupts Enable Timer1 Start Timer1 Config Timer1 = Timer , Prescale = 64 Counter1 = 3036 Do Loop Zegar: Incr Msek If Msek = 2 Then...
' ****************************************... ' * * ' * Mega 8 PAL Video Test Pattern 64 Colours ( noninterlaced ) * ' * * ' * V3.1.38 (c) 2008 Moshtech * ' * * ' ****************************************... ' ' Device -> Analog Devices AD722 or...
Po komendzie Stop Timer1 należy odczytać ilość zliczonych impulsów zegarowych przypisując jakiejś zmiennej (typu Word, np Timer_val) jego wartość: Dim Timer_val As Word ... Timer_val=Timer1 lub Timer_val=Counter1 a następnie wyzerować rejestry timera, przygotowując go do zliczania od nowa: Timer1=0
No to użyj obsługę przerwania od niego (Timer/Counter1 Compare Match A) i ustawiaj wyjście programowo. Light'I
Witam, Zacząłem zabawę z AVR-em. Oczywiście trzeba uruchomić pomysł w miarę szybko więc BASCOM. Programy "kroczki" testuję na konfiguracji na wyrost, czyli Atmega16 z taktem 16MHz. Popełniłem program testowy który w założeniu miał zliczać impulsy poprzez timer. Źródłem impulsów jest PCF8593, procek obsługuje to przez PortB.0 (Wejście dla timerka). Konfiguracja...
Witam wszystkich! Pewnie pomyślicie "znowu to samo", no ale zlitujcie się w Wigilię i przeczytajcie te kilka zdań :D Walczę z problemem od kilku dni. Nie potrafię skonfigurować Timera by konwertował dane z 1wire poza główną pętlą. Nie mogę sobie pozwolić na waitms, bo wtedy mam problemy z poruszaniem się w menu. Mam już działający Timer1 odliczający...
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...
Witam Projektuję sterowanie halogenami LED 12V, które oprócz ściemniania/rozjaśniania będzie szybko wyłączać/włączać - każde wyjście osobnym, ale tylko jednym przyciskiem. Założenie jest takie: dłuższe ( powyżej 1 sek ) przytrzymanie - rozjaśnianie ( na przemian ) dłuższe ( powyżej 1 sek ) przytrzymanie - przyciemnianie ( na przemian ) krótkie ( poniżej...
pier przepraszam. Napisalem odpowiedz, a nie przeczytalem uwaznie, twojego posta. Tak to jest jak sie nie umie czytac ze zrozumieniem. Przepraszam jeszcze raz, ale moze zostac jako info dla innych jak dzial ten czujnik. ________________________________________... Moze zamiast w bawienie sie w load timerX, zrob to starym sposobem counterX= Y i counterX=...
Na pojedynczym uC robil bym tak: przez sekunde liczyl impulsy - bez przerwan, na wejsciu timer/countera. Po sekundzie prepisywal wynik do zmiennej, wylaczal licznik i wyswietlal zmienna na LCD. Potem wlaczal i resetowal counter i znow mierzyl przez sekunde i tak w kolko...
Nie wiem jak Wam ale mi nowa wersja AWRStudio nie za specjalnie leży, ładniej wygląda ale straciła na funkcjonalnosci. np nie jest nigdzie wyświetlana liczba cykli procesora. :arrow: View -> Toolbars -> Processor , a tam Cycle counter .
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...
Witam potrzebuje pomocy w zrobieniu programu który będzie działał na płytce która podałem w temacie, za bardzo nie znam się na bascomie( w nim muszę napisać program) i znalazłem tylko programik który działa na atmega8 ale z tego co się już dowiedziałem nie będzie działać na mojej płytce, i pytanie, szybciej się poprawi program który już został napisany...
Jestem początkujący w dziedzinie programowania Atmelków. Mam zamiar zrobić licznik impulsów , który w pierwszej linii wyświetlacza LCD 2*16 , będzie wyświetlał ilość impulsów , zaś w drugiej ma pokazywać ilość obrotów na minutę. Generalnie ma to rejestrować przebiegi wolnozmienne ok 1Hz nawet ciut mniej. Zaczerpnąłem kawałek kodu oczywiście z netu ,...
Łap. Napisałem przy kubku kawy i najdłużej to organizowałem się do zdjęć :D To prosty kodzik i zawsze można coś poprawić. Niemniej, co widać na fotach, mierzy częstotliwość, wypełnienie oraz pokazuje czasy stanów Hi/Lo ;) Może się komuś przyda :P http://obrazki.elektroda.pl/4849788600_1... http://obrazki.elektroda.pl/2015178300_1...
Witam, Męczę się żeby uruchomić bootloader w atmega 32 z przykładów Bascoma: Program któy chce wgrać to: '---------------------------------------... ' BOOTNEW.BAS ' (c) 2003, MCS Electronics ' The purpose of this file is to test the bootloader ' After the ? mark from the loader, set the focus to this window and then...
tak, przepraszam za literowke, oczywiscie mam w programie napisane tak: config timer1=counter reszta jak wyzej
Nie wiem czy kod w Bascom na coś Ci się przyda ale właśnie na takiej zasadzie jak w tym programie zrobiony mam pomiar prędkości wiatru w moim pozycjonerze. Troszkę inaczej wykorzystuję tu timery niż założyłeś ale... Zostawiłem Ci tylko fragment odpowiedzialny za liczenie impulsów i dodałem obsługę wyświetlacza. Program jest na tyle prosty, że z interpretacją...
Przykładowe Kody ARDUINO: https://obrazki.elektroda.pl/1488910500_... https://obrazki.elektroda.pl/3408995600_... Dodano po 2 Dodatkowo zamieszczam wszelkie materiały dotyczące Lassen IQ, włącznie z oprogramowaniem flashującym Chat, itp. Miłej zabawy :)
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...
Ponizej cały kod żródłowy:) Proszę umieszczać kod w znacznikach syntax . Opcja Listing kodu .
Usunąłem Wait 1 przy konwersji z DS18B20, działa, bez problemu ( na trzech przewodach ), tylko wyniki są opóźnione - tzn. wyświetlany wynik nie jest z aktualnego pomiaru, tylko z poprzedniego. Dodałem jeszcze dwa czujniki DS18B20. Ich zapis razem z godziną i datą na karcie jest jak najbardziej w porządku, tylko wyświetlanie trochę szwankuje - tzn. czasem...
atmega counter bascom counter counter atmega
focal subwoofer napełnianie kartridży canon cewka heterodyny pionier
teltonika konfiguracja sprzedam tp118
Wymiana kostki lampy przedniej Mercedes A180 przed i po liftingu Tryby w hulajnodze Bili Coco nie działają - przyczyny