. 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ś...
hunterhouse W AVR-ach sprzętowo można zatrzasnąć zawartość timera , ale uruchomić zliczanie trzeba programowo.Natomiast w 51-ce można uruchomić i zatrzymać timer sprzętowo.Jeśli na P3.3 jest stan wysoki i flaga GATE timera1 jest ustawiona , to timer zlicza doputy , dopuki stan na P3.3 nie zmieni się na niski.Problem jest tylko z tym , że Charly chce...
] 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...
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...
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...
Może nie umie wstawiać? $regfile = "m88def.dat" $crystal = 1000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.5 , Rs = Portb.4 Config Portd = &B00001111 'portd 0 1 2 3 jako wyjscia portd 4 jako 1wire 5 6 7 jako wejscia Portd.5 = 1 Portd.6 = 1 Portd.7 = 1 Portd.3 =...
http://obrazki.elektroda.pl/9838687700_1... Trochę z obawą prezentuję kolejny już na elektrodzie sterownik oświetlenia, no bo ileż tego już tutaj było? A jednak nie znalazłem rozwiązania mnie zadowalającego, dlatego też powstał niżej prezentowany układ, powstał ponieważ klasyczne lampy z czujnikami ruchu mają pewną zasadniczą wadę:...
Witam czy ktos moze mnie oswiecic w jaki sposob zapisac wartosc do rejestru Counter1 pod bascomem ? Mam taki prosty program i za nic w siecie bascom nie che go lyknac $regfile = "Attiny26.dat" $crystal = 1000000 Config Timer1 = Timer , Prescale = 64 On Ovf1 Czas Enable Interrupts Enable Timer1 Counter1 = 120 Do nop Loop Czas: nop Return...
Pierwsze stosuję procki które maja oporniki . Stosuję zasadę minimalnego połączenia , żeby była zachowana . Zasilanie musi pochodzić ze wspólnego źródła ale zawsze procesor musi mieć oddzielny stabilizator . Napięcie referencyjne robię tak jak zaleca to producent procka (chyba wie co produkuje) Zawsze stosuję 7805 bo wiem że jest OK i mam zawsze 5.02V(byle...
A gdzie instrukcja CONFIG TIMER1 = COUNTER?
dużo prościej byłoby jakbyś zastosował 16-bitowy licznik COUNTER1 u mnie w bascomie często "counter1 = 5878" nie działa.. nie wiem może bascom coś miesza przy operacji na tych dwóch rejestrach więc polecam coś takiego jest TH1 czyli starszy bajt counter1 i TL1 czyli młodszy jeśli starszy = 1 a młodszy 0 to całość wynosi 256 korzystając z counter1 (16bitów)...
No nie wiem. Chyba nie da rady. BASCOM tego nie policzy. Za wysokie progi dla niego. Dodano po 2 Zamiast tego: Counter1 = Counter1 + 34186 wpisz to: Counter1 = T1_reload No i wcześniej zadeklaruj T1_reload.
W tym subie co jedną sekundę masz odejmowanie od jedności sekund ale żadnego wiecej warunku wiec.. masz sec 0 i potem 255. Zobacz co się stanie jak trochę pomodzisz :P [syntax=basic4gl] Dim 1sec As Byte Do If 1sec = 1 Then 1sec = 0 Jesli liczymy w dół Then Gosub Zmniejsz Else Gosub Zwieksz End If Jesli End if 'end if 1sec Loop End Co1s: Counter1 = Counter1...
Witam Enable Interrupts Enable Int0 Przycisk Przycisk: Incr Counter0 Incr Counter1 If Counter0 = 100 Then Portd.3 = 1 Else Counter0 = 0 If Counter1 = 500 Then Portd.6 = 1 End If End If Counter1 = 0 Return Procedure po etykiecie przycisk umieszczasz gdzieś w pętli glównej. Nie wiem czy to będzie działać bo niesprawdzałem tego. Wartości do jakich muszą...
robisz tak $regfile = "m8def.dat" $crystal = 8000000 Config Timer2 = Timer , Prescale = 256 , Async = On On Timer2 Odmierz_1s Enable Interrupts Enable Timer2 Counter1 = 128 Do Loop End Sub Wysw End Sub Wart_bcd = Makebcd(godziny) Wartosc = Bcd(wart_bcd) Wart_bcd = Makebcd(minuty) Wartosc = Bcd(wart_bcd) Wart_bcd...
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...
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...
Dim Licznik As Byte Enable Interrupts 'Przerwania odblokowane '---------------------------------KONFIG... TIMER 0---------------------------------------... Config Timer1 = Timer , Prescale = 1 Counter1 = 59536 'Wywołąnie co 1ms Enable Timer1 'Odblokowane przerwanie TIMER 1 On Timer1 Procedura_w_przerwaniu_timer1 Procedura_w_przerwaniu_timer1:...
Witam Napisałem taki oto programik w bascomie, chce aby przerwanie bylo co 10ms. Mam jednak pewne zastrzeżenia do Bascom'u i nie jestem pewien czy w praktyce te 10ms bedzie dokładne ?? ile taktów zegara potrzeba na wpisanie wartosci dla timera oraz jego wystartowanie ?? gdzies wyczytalem ze 54 takty, ale nie jestem pewien tego. $crystal = 12000000 $large...
Przespałem się z tym i już wymyśliłem. Wykorzystałem przerwanie wewnętrznego timera oraz instrukcje warunkowe IF. Oto wycinek listingu: [syntax=basic4gl] 'konfiguracja procesora ,portów , LCD, itp. Dim Impulsy As Byte 'zmienna impulsy Config Timer1 = Timer , Prescale = 256 On Timer1 1sekunda Enable Interrupts Enable Timer1 Start Timer1 Counter1 = 56000...
Witam Problem następujący... Program ma liczyć imulsy, a dokładnie mierzy częstotliwość. Wszystko chodzi jeśli wybiorę zamiast TIMERA2 - TIMER1, ale ja musze to zrobić na TIMER2. Pozniżej kod: [syntax=basic4gl] $regfile = "m328pdef.dat" $crystal = 11059200 $hwstack = 256 ' rozmiar stosu sprzętowego $swstack = 128 ' rozmiar stosu $framesize = 128 Dim...
$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 Config Lcd = 16 * 2 Config Timer1 = Counter , Edge = Falling , Noise Cancel = 1 , Prescale = 1 Config Timer0 = Timer...
Najwięcej czasu procka zajmuje komenda LCD W tym przykładzie w pętli jest wyświetlanie danych w każdym przejściu pętli for - next ale jest to zrobione tylko do celów symulacji. Normalnie "wynik" wysyłany jest jako zmienna ustawiająca counter1 timera. W docelowym programie te zmienne wynikowe nie są wyświetlane, służą do czego innego. W zamieszczonym...
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...
A którą wersję Bascoma używasz? 1.11.9.0 Timer1_int: Counter1 = 54040 ' 10 razy na sekunde .... Return Nie wiem dokladnie ile cykli w bascom-avr jest zuzywane na odlozenie wartosc rejestrow na stos dlatego wybralem wartosc 54040 zamiast 54016 jako bardziej zblizone do 0.1s / stos + 0,09979167s / moze ktos wie ile dokladnie cykli jest tracone przed...
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...
$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...
Przeznaczenie: Zatrzymuje działanie programu lub określone urządzenie. Składnia: STOP STOP urządzenie gdzie: urządzenienazwa symboliczna uruchamianego urządzenia. Opis: Pierwszy format instrukcji powoduje zatrzymanie działania programu. W tym celu jest wykonywana pusta pętla, podobnie jak w instrukcji END. Jednak przy instrukcji STOP nie są wyłączane...
Witam! Płytki i schematu nie trzeba już sprawdzać - wykonane, połączone i działa. Kwestia nierozwiązana to program w Bascomie. Poprzedni kod trochę zmodyfikowałem, ale nic to nie dało. Sama obsługa przerwania Timera0 jest zła, bo wywalając całą resztę i zostawiając: [syntax=basic4gl]$regfile = "m8adef.dat" $crystal = 8000000 Config Pinb.1 = Output Config...
$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...
Witam, Napisałem prosty program w bascomie jako komputerek pokładowy do motoru $regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdbus = 4 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 Cursor Off Cls Lcd "Szerokiej Drogi!"...
Witam :) Po kilku dniach zabawy udało mi się zbudować układ składający się z ATMEGA16 (kwarc zewnętrzny 8 MHZ, rs232) i: - czujnika podającego na pin A1 napięcie 0.2-4.7V - czujinka podającego częstotliwość 4-40kHz na pin PBO. Po przestudiowaniu podstaw BASCOMu i lekturze forum udało mi się napisać oddzielne programy do obsługi tych czujników. Jednak...
A może by tak? $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 Cursor Off Config Portd.6 = 1 Config Portd.0 = 0 Portd.0 = 1 Portd.6 = 1 Dim Czestotliwosc As Long Const Licznik = 22336 Config Timer1 = Timer , Prescale...
programu nie wstawiłem bo nie wiem czy będzie potrzebny a jest strasznie pokręcony chodzi mi o samą zasadę dzialania coś porównane do czegos i nie wiem moze przypisane jakiejs innej zmiennej tu jest listing ale nie skończone obsługa ledów bo ustawienie ma byc nimi sygnalizowane $regfile = "m8def.dat" $crystal = 8000000 Config Pind.0 = Output...
Witam, zwracam się z prośbą o pomoc. Tworzę program sterujący silnikiem DC. Program składa się z menu głównego w którym są 4 podprogramy 3 z nich działają bezbłędnie. Największy kłopot sprawia mi 4 podprogram a zarazem najważniejszy. podprogram startt ma za zadanie odmierzyć zadany przedział czasowy gdy osiągnie wartość 0 wykonać pewną procedurę i zacząć...
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...
Witam Znalazłem na elektrodzie poniższy kod: $regfile = "m8def.DAT" Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.4 , Rs = Portc.5 Config Portd.0 = Input Config Portd.1 = Input Config Portd.2 = Input Config Portd.3 = Input Config Portd.5 = Input Config Portb.4 = Output Cursor...
Da się na 1000% ponieważ przed tym miałem tzw "piórnik ściągę" i pokazywało temperaturę i czas w 2 linijkach jakby jako jedna. Tylko właśnie nie wiem jak to dokładnie napisać ponieważ nie mogę ogarnąć tego w kodzie z tego "piórnika" Teraz chcę żeby tak pokazywało tylko temperaturę. Ogólnie ten "piórnik ściągę" rozpatroszyłem na części pierwsze żeby...
Witam, jako, że kończą się wakacje postanowiłem udoskonalić trochę soft piórnika - chcę dodać odczyt temp., tylko nie wiem gdzie ją umieścić. '***************************************... '* Program Piórnik Mini wersja 1.0 Beta *' '* Pomysł: FICU *' '* Programista: Jacek R (Black Jack) Kompilator:...
całość jest bardzo rozbudowana bo sterownik ma robić i inne rzeczy (prawie 8kb) podam te fragmenty o które mi chodzi: Sub Aux Readeeprom Aux_g_on , 2 Readeeprom Aux_m_on , 3 Readeeprom Aux_g_off , 4 Readeeprom Aux_m_off , 5 If Aux1_1_wyk = 0 Then If Aux1 = 0 Then If Godziny = Aux_g_off Then If Minuty = Aux_m_off Then Set Aux2 Aux1_1_wyk = 1 End If End...
Mam sobie niżej pokazany programik w bascomie ale niestety nie wiem jak dopisać obsługę pilota :| Programik jest na 89c4051 ;) $large Config Lcd = 16 * 2 Config Timer1 = Timer , Gate = Internal , Mode = 1 Config Sda = P3.1 Config Scl = P3.0 Dim Licz As Byte Dim I As Byte Dim Nast(5) As Byte Dim St As String * 7 Dim W_reg As Integer Dim Wielk1...
Witam podaję kod, który działa poprawnie, oczywiście należy go dopasować do swoich potrzeb. [syntax=vbnet] 'Sterownik swiatel V2.2 '10-06-2015 'Roman Biadała $regfile = "m128def.dat" $crystal = 11059200 '$lib "fp_trig.lbx" '******** Ustawienia portów ****************************************... '******** Sterowanie 74HC541 - przekaźniki *************************************...
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...
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.
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...
Uruchom przerwanie od Countera (najlepiej od porównania wartości zliczonej z ustawioną) i zmień stan portu w podprogramie obsługi przerwania lub prościej, ale mało elegancko zmień [syntax=basic4gl]If Counter1 = 100 Then ...[/syntax] na [syntax=basic4gl]If Counter1 >= 100 Then ...[/syntax] Nie tak jest to, że w chwili zliczenia setki nasz if może się...
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...
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...
Hmm Nie jest to takie proste jak sobie wyobrażasz. Najprostszy zegar jaki ja często stosuję: Oczywiście preskaler i początkowa wartość timera dostosowana jest do 8Mhz Jeśli chcesz zastosować zegar z innym taktowaniem musisz sobie obliczyć początkową wartość i preskaler. $regfile = "m8def.dat" $crystal = 8000000 Dim Sekunda As Byte Dim Minuta...
Const odlicz=65436 rem dla zegara 12MHz odliczy tylko 100 impulsow (100us) dim licznik as word dim koniec as bit Config Timer1 = Timer , Mode = 1 , Gate = Internal On Timer1 etykieta Counter1 = odlicz do start timer1 bitwait koniec,set reset koniec rem petla powtarza sie co 100 us loop etykieta: licznik = counter1 rem To ma eliminowac czas od momentu...
timer1 counter1 bascom counter1 counter1 34286 enable counter1
ekranowanie subwoofera schemat płyta indukcyjny sharan kontrolka świec
tda440 wzmacniacz scania światła
Sony Ericsson P910i – odblokowanie SIM-lock, kodu telefonu i reset urządzenia Unitra AT-9100 czy Merkury DSH-303A – porównanie amplitunerów, brzmienie, serwis, retro