Więc tak. Odcinek 1 sekundy ma być bardzo dokładny, czy nie musi? Jeżeli procek będzie pędzony z wewnętrznego oscylatora, to czas 1 sekunda nie będzie bardzo dokładny. Musisz zmienić fusebity, aby procek był taktowany z 4MHz, bo teraz jak sam widzisz pracuje na 1MHz.
No łap bo to akurat sekunda roboty. Sprawdziłem też bibliotekę. Moja kompiluje się w 2082 bez problemu.
Wojtek - wchodzisz tutaj: [url=http://www.frank-zhao.com/cache/avr... z kalkulatorem 16MHZ z preskalerem 1024 oznacza że: - 1 sekunda nastąpi po 15625 cyknięciach timera - przerwanie następuje przy przepełnieniu jeśli wybierzesz OVERFLOW, ale może tez nastąpić przy COMPARE, od tego zależy jaką wartość wpiszesz do timera (czy odejmiesz...
Pozwolę sobie umieścić post pod postem żeby wiadomość dotarła do zainteresowanego. Jeszcze lepszym wyjściem dla takiego zegara będzie zastosowanie dedykowanego rezonatorka 32768Hz (32,768KHz) Wartość 32768 to w zapisie binarnym dokładnie piętnaście bitów. Jeśli więc Timer będzie zliczał generowane impulsy to po 32768 uzna że mineła sekunda :D Bascom...
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 :)
To nie jest skomplikowane tylko zamiast docinać można wytłumaczyć. Jedna sekunda ma 1000 (słownie tysiąc) milisekund. Herz określa ile razy coś dzieje się na sekundę 1 Herz - coś dzieje się raz na sekundę 50Hz - coś dzieje się 50 x na sekundę Teraz weź 1000ms(czyli sekundę) podziel przez 50 razy czyli 50Hz i wyjdzie Ci 20ms... Potem to już logiczne...
zacznijmy od tego, ze kod umieszczamy w klamrach Dodano po 10 to jest kod na jedna sekunde $regfile = "m8def.dat" $crystal = 8000000 Config Pind.7 = Output Portd.7 = 0 Przekaznik Alias Portd.7 Config Timer1 = Timer , Prescale = 256 On Timer1 Sekunda Enable Interrupts Enable Timer1 Load Timer1 = 31250 Do Loop End Sekunda: Load Timer1 =...
Mam problem jestem początkujący napisałem program który ma za zadanie regulować włączanie wiatraka i czas z jakim ma dmuchać , jednocześnie mierzy temperaturę i nie działa tak jak powinno : Temperatura pokazuję co jakiś czas błędny pomiar np 124 , 32 , 98 procek się resetuje chińskie znaki raz na jakiś czas w programie można było ręcznie zmieniać czas...
Żeby nie zapomnieć na końcu to już tutaj napiszę, że liczy się to w programach bo one się rzadziej mylą, ale zrozumienie tematu jest oczywiście ważne. Jest kilka, a w pełni darmowych, kalkulatorów do tego. Timer jest urządzeniem sprzętowym wbudowanym w mikrokontroler. Najczęsciej taktowany jest w taki sposób, że sygnał zegarowy taktujący mikrokontroler...
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...
Przetestuj ten. Tak go poopisywałem, że aż mi się nie podoba :D [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 40 $swstack = 16 $framesize = 32 '# wyświetlacz Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 Cls '# timer ' 8000000Hz(8MHz)/256(Prescaler)=...
To jest proste jak świński ogon :D ahahahaha, ale napisz kawałek kodu. Czy masz tam jakiś LCD czy nie, czy masz tam jakiś Timer ustawiony do odmierzania sekundy czy Wait`ujesz :D Czy w dokumentacji czujnika pisze, że nadaje tez na końcu niewidoczne w terminalu znaki 13 lub 10? EDIT: aaa masz tu taki prosty. Napisałem przy śniadaniu więc błąd mógł się...
Kolega Kuniarz dobrze napisał pomiar czasu z PCF to jedno a pomiar z timer-a to drugie... jedna sekunda nie rowna drugiej i dlatego co jakis czas moga wyjść bzdury... Dlatego według mnie trzeba wykorzystać pomiar z dokładnego źródła....
Witam serdecznie Potrzebuje pomocy przy takiej właśnie kwesti Jak podam sygnał na port X o określonej długości czasowej muszę go odróżnić i wyświetlić dane na LCD "dane 1" , "dane 2" , "dane 3" a potem sterowanie 3 portami sygnał mniej jak 1 sekunda potem między 1 a 2 sek i dalej między 2 a 3 sek ....
1Hz to raz na sekundę. 8MHz to osiem milionów razy na sekundę. Sekunda jest tu kluczowa. W ciągu sekundy procesor taktowany 8MHz przetworzy około 8mln instrukcji (pomijam te które wymagają dwóch taktow) no a jak podłączysz do procesora taktowanie 16MHz to odwali dwa razy tyle roboty w ciągu sekundy . Zerknąłem na twoje kody i mam kilka rad. W Bascom...
Witajcie, dziś postanowiłem się podzielić dorobkiem w postaci oprogramowania i wiedzy na temat pewnego modułu GPS. Zegar softowy synchronizowany GPS z dodatkowym wyświetlaniem współrzędnych i prędkości no i dorzuciłem w ostatniej chwili temperaturę z DS18B20 - taki szkoleniowy programik w BASCOM (świetny przykład - gotowiec dla tych którzy chcą zrobić...
Czy ktoś wie dlaczego nie chce mi się zerować wartość sekund co te 60 sekund? Zmień nazwę zmiennej sekund ("Sec") na coś innego np: "sec_", albo "sek" (bez znaków " "). Bascom akceptuje instrukcje ASM, gdzie "SEC " oznacza "Set Carry", zatem prawdopodobnie może tu wystąpic konflikt. Nie bardzo rozumiem po co ta cała kombinacja. Zliczania czasu zalączenia...
Może pilot ma takie zabezpieczenie, że podczas dłuższego niż sekunda wciśnięcia przycisku ponawia i przerywa sygnał. Program będzie to wykrywał jako kolejne naciśnięcia.
to znaczy o które porównanie CI chodzi?? O tą linijkę z IF ?? Wywal po Sekunda tą kropke i 0 bo program nie wie co to jest, bo nie zdefiniowałeś tej zmiennej przedtem w programie.
tak na szybko ;) Config Timer1 = Timer , Prescale = 64 Enable Interrupts Enable Timer1 On Timer1 Zegar Zegar: Incr Sekunda Return
Witam jestem początkujący w temacie bascom potrzebuję rozwiązać problem związany z błędnym odliczaniem zaprogramowanego czasu. Program przerobiony z działającego zegara ( samo odliczanie działa dobrze), tylko chcę żeby w 20 -stej sekundzie wyjście PIND.2 zostało załączone i w 45-tej sekundzie wyłączone. Teraz działa przypadkowo w 20 sekundzie zostaje...
Zmierz jaki masz pobór na postoju. Pewnie z 20mA. Prąd pobierany przez mikrokontroler w trybu głebokiego uśpienia jest 1000 razy mniejszy. Prościej pisząc - jak by był podpięty do baterii to ona (teoretycznie) starczyła by kilka lat. Tylko że bateria ma pojemność kilkadziesiąt razy mniejszą niż akumulator i nie jest doładowywana. Miesiąc takiej pracy...
dzieki , dyrektywe crystal=8000000 dałem, jestem na tyle poczatkujący że nie wiem jak przestawić te fuzy, no tak bascom jaK TO SIE ROBI Z POD BASCOM AVR
Procek to At89C2051 (89C4051) . Przerwamiua moga byc co dowlny czas byle regularny np 1 sekunda czy nawet mniej
Kolego jacynka84 . Układy MCS-51 nie posiadają konfigurowalnego preskalera. Jest tylko dzielnik przez 12. Wykonałem go na procesorze 89c2051 z 12MHz kwarcem. Program sam do niego pisałem i wydaje mi się że powinno być wszystko dobrze bo wyliczenia się zgadzają a jednak jest chyba coś nie tak. Gdyby BASCOM był idealny to działałoby to porawnie - z błędem...
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....
To ma byc z dokladnoscia do 1s, takze o wyswietlaniu setnych sekund nie ma nawet rozmowy ;p. Ostatnia cyfra to sekunda i mniej wiecej z taka dokladnoscia to ma byc
Mam program do zegarka z alarmem...podczas kompilacji w programie Bascom AVR wyskakuje mi bład w tej lini Set Tcon.2 'opadające zbocze int1 dla obslugi timera Enable Interrupts 'odblokowanie przerwań On Int1 Sekunda 'skok do etykiety sekunda gdy wystąpi int1 a brzmi on tak Error:41 Line: 49 Variable can not be used with SET [TCON] Niech ktoś mi pomorze!!!!
Język w jakim pisze to Bascom. Program Bascom-AVR. A oto kod programu, może gdzieś popełniam błąd w obliczeniach, bo ta sekunda to trwa około 3 - 4 sekundy Dim Sekjed As Byte Config Portb = 255 : Portb = &B255 : Config Portd = &B1111100 : Portd = &B1111111 Config Timer0 = Timer , Prescale = 64 : Config Timer1 = Timer , Prescale = 64...
Pewnie ATmega lata na wewnętrznym rezonatorze zamiast kwarcu :) Zrób program który zapala i gasi diode co sekundę i sprawdź czy sekunda Twojej Megi ma coś wspólnego z tą na zegarku ;)
Problem w tym, ze musze napisac ten kod w basicu. W zasadzie mam ten kod napisany, ale chyba nie dziala jak powinien. Nie wiem czy to nie ma zwiazku z ustawieniami fusebitow, bo sekunda trwa ekstremalnie dlugo. Czy ktos wie jak zapisac cos do buforu odczytac lub sprawdzic czy jest cos w buforze? (bascom i attiny2313)
Można jeszcze sprawdzić, czy generator w PCFie pracuje, co sekunda powinien być impuls na wyjściu INT, sprawdź to, i ja też mam kondensator przy samych nóżkach, za diodami, bo był trochę oddalony i wtedy nie odmierzał tak dokładnie.
No więc tak, przypuszczam że jestem na forum , a nie w encyklopedii, jakbym chciał gadać z maszyną, a nie z człowiekiem to na pewno bym użył przycisku szukaj, to jest raz, a dwa czas to jest 1 sekunda czyli 1000ms albo jak kto woli 1000000us, dla jasności.
No dobra pal licho dokładność odmierzania czasu. Tu nie jest aż tak ważna. Ale timer1 nie jest skonfigurowany . Pomiar nie ma prawa się odbywać, bo przerwanie od timera1 nie jest wywoływane, a co za tym idzie cała procedura "co1s" , a także ten podprogram "Odczytaj" również nie. Nawiasem mówiąc po co on jest ? Nie lepiej zamiast gosub po prostu przenieść...
to może wykorzystasz częsc programu która odpowiada za odmierzanie jednej sekundy np dla zwykłego zegarka pozostaje tylko przelicznie dla danego kwarcu. projektów zegarków troche jest. tak sobie mysle ze problem z pomiarem tzn że silniczki maja taką samą prekdkość może byc zbyt krótki czas pomiaru czyli jedna sekunda w czasie której np dla wartości...
Witam, potrzebuję procedurę/funkcję, która zamieniałaby sekundy na czas i datę. Nie za bardzo mam pomysł na napisanie takiej procedury. Chodzi o to, że zmiennej 32-bitowej o wartości 0 odpowiada: Sekunda = 0, Minuta = 0, Godzina = 0, Dzień = 1, Miesiąc =1, Rok = 2000, wartość 1: Sekunda = 1 ..., wartość 60: Sekunda = 0, Minuta = 1 ... itd. Oczywiście...
Witam serdecznie. Ostatni kod przepisałem żywcem z książki "Programowanie mikrokontrolerów w języku BASCOM" autorstwa Marcina Wiązania. Dioda miga ciut za wolno. Tu mi ręce opadają, dlatego zwracam się do Was o pomoc. Kod: Nie wierzę w to co napisałeś!!! Autor ksiązki nie zrobiłby takiego błędu... Podajesz błędne instrukcje, i oczekujesz poprawnej...
Dziękuję za pomoc. Nie za bardzo rozumiem tylko [syntax=vbnet] '********************* Timer1 - 2 ms x 500 = 1 sekunda Czas1: Load Timer1 , 1999 If Odczekaj > 0 Then Decr Odczekaj Return [/syntax] Bo nigdzie nie jest wykorzystywana ta zmienna Może chodziło o [syntax=vbnet] '******************** If Odczekaj= 0 Then Select Case Play_step Case 1: Clk_wtv020...
Dziękuje za odpowiedź ale generalnie nie moge zgodzić się z Tobą .Zrobiłem program który sprawdza i wyświetla freq na wyświetlaczu . Kiedy miało odpowiednią wartość to serwo zaczynało coś robić ale robiło to nieskładnie . Więc nie chodzi o wartość tego parametru . Moge się zgodzić że to nie będzie za każdym razem taka sama sekunda . Ale nie musze dokonywac...
to jest adres ukladu I2cstart I2cwbyte 208 I2cwbyte 0 I2cstart I2cwbyte 209 I2crbyte Sekunda , Ack I2crbyte Minuta , Ack I2crbyte Godzina , Ack I2crbyte Dzientygodnia , Ack I2crbyte Dzien , Ack I2crbyte Miesiac , Ack I2crbyte Rok , Nack I2cstop Sekunda = Makedec(sekunda) Minuta = Makedec(minuta) Godzina = Makedec(godzina) Dzientygodnia...
Witam Mam zegarek/budzik z wyświetlaczem LED ( dwukolorowy ). Zegarek generalnie działa. Ale mam problem z sterowaniem jasnością. Wiadomo, że robi się to tak, że jasność zależy od częstotliwości odświeżania. Tutaj o jasności wyświetlania ma decydować zmienna jasnosc. . jasnosc : [syntax=vbnet] '************ Timer0 1000 = 1 sekunda, 10000 = 10 sekund,...
Nojmi - gdybys mogl opisac mi krok po kroku co robi Twoj program... PLEASE!!! Wpisuje obsluge diody ale cos dziwnie mi to dziala... To znaczy jak nacisne 5 razy przycisk powinien zapalic diode na 5 sekund i potem ja zgasic... A on jak naciskam kolejne razy tak jakby liczyl od poczatku... Acha! I dlaczego dla przerwania 1 sekunda i przy kwearcu 12M jest...
Ja też mam podobny problem . Przerzuciłem się ostatnio na avr-y i nie mogę dojść do ładu z ustawieniem zegara w attiny 2313. fusy mam ustawione na zewnętrzny oscylator według tej strony : http://www.engbedded.com/fusecalc/ , mam podłączony kwarc 11059200 Hz , a sekunda trwa w tym momencie 7 sekund . Jeżeli ustawię na wewnętrzny oscylator to też...
Przerobiłem tak, żeby wysyłał testowo tylko jedną wartość ( losową ) co 8 sekund Dodano po 18 Dołożyłem Clear Serialin0 Com1_str = "" czyli [syntax=vbnet] $regfile = "m328pdef.dat" $crystal = 8000000 $hwstack = 100 ' rozmiar stosu sprzętowego $swstack = 100 ' rozmiar stosu programowego $framesize = 128 $baud = 19200 '************ Uart 0 Config Serialin0...
Witam Mam płytkę sterującą dwoma kanałami PWM - przez ULN oraz MOSFETY. Płytka ma dwa wejścia oraz wejście czujnika PIR - INT1. Ma przede wszystkim sterować włączaniem taśmy LED 12V z czujnika PIR ( oprócz tego z drugiego wejścia ). LED włączona przez PIR ma docelowo świecić określoną ilość czasu ( zależną od natężenia światła ) i się wyłączyć. Żeby...
Witam Mam płytkę z Atmega8 połączoną z czujnikiem PIR ( wejście INT1 przez transoptor ), do tego pomiar ADC ( od wartości adc zależy czas po jakim PWM będzie zmniejszone, opcjonalnie chcę też pod INT0 podpiąć przycisk, coby włączyć światło, gdybym nie znalazł się w zasięgu czujnika. Dodatkowym "bajerem" jest to, że światło ( listwa LED ) powoli się...
Co do szybkości - Flaga jest ustawiana co 3,21 sekundy [syntax=basic4gl] Czas: Timer0 = Timer0 + 112 ' ( 100 = 1 sekunda ) Incr Licznik_ds If Licznik_ds = 321 Then ' 3,21 sekundy Flaga_ds = 1 Licznik_ds = 0 End If Return [/syntax] czyli pierwsza flaga to wywołanie DS18B20, później znowu 3,21 sekundy i flaga, wtedy konwersja i obliczenia. Zastanawiam...
Fusebit C-ma być disabled.
Witam No i nadal to samo, wlutowalem 100nF, zamienilem 4,7k na 1k, ustawiam rejestr kontrolny I2cstart I2cwbyte Pcf_zap I2cwbyte 0 I2cwbyte 8 I2cstop Do I2cstart I2cwbyte Pcf_zap I2cwbyte 2 I2cstart I2cwbyte Pcf_odcz I2crbyte Sekunda , Ack I2crbyte Minuta , Ack I2crbyte Godzina , Nack I2cstop Godzina = Makedec(godzina) Minuta = Makedec(minuta)...
Hmm...Bascom działa lepiej kiedy się wie co się robi :D Wiesz co robi instrukcja Config Clock = Soft ? Konfiguruje Timer który w mikrokontrolerze jest przygotowany do pracy asynchronicznej. Dodatkowo potrzebny jest rezonator kwarcowy 32768 Hz dołączany do pinów mikrokontrolera oznaczonych TOSC1 i TOSC2 Nie będę opisywał wszystkich przypadków, ale dla...
bascom sekunda licznik sekunda bascom bascom licznik sekunda
sterownik kontroler ethernet atheros triax antena śruby nietypowe
Briggs & Stratton Seria 3130 344cc – czy silnik ma filtr oleju? PowerBuilt vs Intek Wyłącznik świecznikowy Legrand, Schneider – sterowanie gniazdkiem 230V, podłączenie, bezpieczeństwo