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...
Atmega32 ma rejestr TIFR, czyli usuń "1". [syntax=asm]; Clear interrupts (if any happened). sbi _SFR_IO_ADDR(TIFR), OCF1A[/syntax] ; TIFR - Timer/Counter Interrupt Flag register .equTOV1= 2; Timer/Counter1 Overflow Flag .equOCF1B= 3; Output Compare Flag 1B .equOCF1A= 4; Output Compare Flag 1A .equICF1= 5; Input Capture Flag 1 edit. Jeszcze TIMSK zamiast...
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...
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...
Czyli pilot działa, OK. Dobra mamy błąd w programie. wywaliłem wszystko co zbędne, sprubuj teraz, z tym kodem. $regfile = "m8def.dat" $crystal = 8000000 'Instrukcje konfiguracji peryferiów oraz urządzeń zewnętrznych Config Int0 = Low Level Config Rc5 = Pind.2 Config Lcd = 16*2 Config Lcdpin = Pin , Db4 = Pinc.2 , Db5 = Pinc.3 , Db6 = Pinb.2...
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...
Zmieniłem realizacje zegarka na timer1. Oto część programu: [syntax=basic4gl] Config Timer1 = Timer , Prescale = 256 On Timer1 Odmierz_1s Enable Timer1 Counter1 = 34286 do loop end odmierz_1s: Counter1 = Counter1 + 34286 Incr Sek If Sek = 60 Then Sek = 0 Incr Minuta If Minuta = 60 Then Minuta = 0 Incr Godzina 'Godziny If Godzina = 24 Then Godzina =...
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...
To właśnie zostało uruchomione - musi działać. Pisane pod WinAVR [syntax=c] #define SET(port, bit) port|=(1<<bit) #define RESET(port, bit) port&=~(1<<bit) #define NOT(port, bit) port^=(1<<bit) //Przerwanie wywolywane 100 razy na sekunde ISR(TIMER1_COMPA_vect)// == SIG_OUTPUT_COMPARE1A { NOT(PORTD,PD6); } int main (void) { SET(DDRD,PD6);...
Witam. Napisałem program do sterowania pompą i na Atmedze8 działa bez problemu a gdy go przerobiłem pod ATtiny25 to nawet nie moge go skompilowac bo wywala jakieś błędy nie wiem jak to uruchomić prosze o pomoc. przy próbie kompilacji wywala Error 46, Error 31, Error 350 Program dla Atmegi8 $regfile = "m8def.dat" $crystal = 8000000 Config Pinb.2...
To, że program i schemat to jedna całość to akurat wiem :), Napisałem dla przykładu "set PORTB.0". Schemat Poprawiłem, w kodzie tylko ustawienia pinów, nie wiem czy dobrze go okroiłem z wyświetlacza. Jam pozbyć się zewnętrznego kwarcu w kodzie? co trzeba pozmieniać? EDIT http://obrazki.elektroda.pl/9407654700_1... [syntax=basic4gl]$regfile...
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...
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...
a ustawiłeś Fuse Bity?? Bo jeśli nie masz ustawionych to ATmega pracuje z częstotliwością 1MHz. Musisz ustawić Fusy na albo 8MHz na wewnętrznym generatorze albo ustawić Fusy na zewnętrzny kwarc. i mniej więcej kod by tak wyglądał: $regfile = "m8def.dat" $crystal = 8000000 Cursor Off Dim Czestotliwosc As Long Const Licznik = 22336 Config Timer1...
...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...
Zastosuję się do rady. Mam jeszcze problem z zaprogramowaniem tego procesorka tzn. nie wiem jak napisać toto :( EDIT Stworzyłem coś takiego. Nada się w jakimś stopniu, czy ogólnie do wyrzucenia ten kod? [syntax=basic4gl] $regfile = "m8def.DAT" $crystal = 8000000 Config Pind.1 = Input ' wyprowadzenie PD1 jako wejście Config Pinb.1 = Output ' wyprowadzenie...
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...
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...
kupielm Attiny2313 ale po wgraniu programu nie mierzy 1 sekundy tylko dużo wiecej prosze o jakąś porade dlaczego tak sie dzieje $regfile = "attiny2313.dat" $crystal = 8000000 Config Pinb.2 = Output ' dioda pompy Config Pind.4 = Output ' pompa Config Pinb.0 = Output ' dioda sekundy Config Timer1 = Timer , Prescale = 256 On Timer1 Sekunda Dim...
skoniecki, spróbuj tego ;-) $regfile = "m8def.dat" $crystal = 8000000 Enable Interrupts Enable Timer1 Config Timer1 = Timer , Prescale = 64 On Timer1 Przerwanie '''''jesli timer1 doliczy do 65535 wykonaj Przerwanie Counter1 = 64285 '''''=65535-1250 -> pprzepelnienie timera co 10ms Start Timer1 Config Portd.0 = Output Config Portd.1 = Output...
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...
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 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ą...
Witam Mam napisany taki kod do obsługi timera. Przerwanie ma być co 100ms kwarc mam 8MHz. Czy dobrze to jest? skąd się to 12500 wzięło jak mi wychodzi 8000000/64=125000? [syntax=c]TCCR1B = (0<<CS12)|(1<<CS11)|(1<&l... // CLK/64 TIMSK = (1 << TOIE1); // Timer/Counter1 Overflow Interrupt Enable TCNT1 = 0xffff - 12500; ISR(TIMER1_OVF_vect)...
Witam. Jestem emerytem (64l.) i zaczynam dopiero przygodę z Arduino. Znalazłem ciekawy projekt miernika kondensatorów (w dziale DIY zagranica) i chciałem go wykonać. Jednak przy wgrywaniu programu wyskakuje błąd kompilacji. Czy może z kodem jest co nie tak? Proszę o pomoc. Pozdrawiam. JN W załączeniu podaję kod: [syntax=c] #include #include #include...
Moze lepiej uzyc przerwania od przepelnienia Timera. Ustawic tam taka wartosc poczatkową, żeby przepelnial sie co 5 sekund, a jak sie nie da tak duzo, to co 1 sekunde i zwiekszać jakiś licznik. Jak licznik osiagnie wartość 5 to wywołać podpogram Dim Licznik As Integer On Timer1 Co_sekunde Enable Interrupts ' Wlaczenie przerwan Enable Timer1 ' Aktywowanie...
Stasznie mętnie to opisujesz. Żadnych sensownych komentarzy Po zmianie kodu na taki: $crystal = 8000000 $regfile = "m8def.dat" Config Timer0 = Timer , Prescale = 64 , co 0,002s Config Timer1 = Counter , Edge = Falling Dim Wartosc As Word Config Portb.1 = Output Reset Portb.1 Config Portb.2 = Output Set Portb.2 Config Pinb.0 = Input Set Pinb.0...
Ten kod działa PRAWIE dobrze - spóźnia się - pomimo obliczenia timera. $regfile = "m32def.dat" $crystal = 11059200 Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0 Config Lcd = 20 * 4 Config Portc = Output Portc = &B11111111 Config Timer1 = Timer , Prescale = 256 Enable Interrupts...
PWM skonfigurowałem w oparciu datasheet Atmegi32 oraz o kalkulator (http://www.et06.dk/atmega_timers/), który mi wyliczył takie wartości : http://obrazki.elektroda.pl/1205671500_1... PWM zostało więc ustawione następująco : Deklaracja buforów Przerwanie Funckja do zmiany flag buforow Czytanie danych Liczba próbek wprowadzona na stałe...
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 daje glowy ze kod dziala. Mozliwe ze jest duzo bledow. Nigdy nie bawilem sie z star i stop timer1 wiec to moze byc zle. Poza tym nie wiemcz czy obliczenia nie beda sprawialy problemow i dekleracja zmiennych. $regfile = "m8def.dat" $crystal = 8000000 Config Pinb.1 = Input Config Pinb.2 = Input Config Pinb.3 = Input Set Portb.1 Set Portb.2...
$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...
Posiadam książkę pt. "Programowanie mikrokontrolerów AVR w języku BASCOM" Marcina Wiązania i jest tam przykład zegarka z wykorzystaniem timera. Problem polega na tym że sekunda tak naprawdę trwa "wieki" prawie 8s prawdziwych. Połączyłem układ zgodnie ze schematem w książce i tak samo, odłączyłem rezonator nic się nie zmieniało, zmieniałem taktowanie...
Witam. Mam problem z przerwaniami w atmega8. Wcześniej nie potrzebowałem przerwań więc to zagadnienie mnie nie interesowało. Potrzebuję wywołać przerwanie zewnętrzne int0 które uruchomi timer1, a ten zacznie odmierzać czas. Napisałem coś takiego (oczywiście to część z większego projektu) '$sim $regfile = "m8def.dat" 'informuje kompilator o...
Witam ,napisałem program który ma odmierzyć czas lotu helikoptera (do wyczerpania bateryjki) ,niestety po 2 tygodniach utknąłem na czymś takim: $regfile = "attiny2313.dat" 'wybór procesora attiny2313 $crystal = 8000000 Config Pinb.0 = Output 'dioda sygnalizująca odmierzenie czasu Config Pinb.1 = Output 'buzzer mający piknąć 3 razy po odmierzeniu...
Mam taka procedure przerwania: Przerwanie: If Z_lampa = 0 Then 'jesli jest zgoda na zalaczenie lampy Incr Cz_lampa If Cz_lampa >= 12 Then 'jesli uplynela 1 sekunda troche mniej Cz_lampa = 0 'wyzeruj czas lampy If Prz_lampa = 0 Then Set Prz_lampa Else Reset Prz_lampa End If End If End If If Z_tr = 0 Then 'jest zgoda na zalaczenie transformatora mocy...
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...
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...
Cześć! Zbudowałem miernik częstotliwości w oparciu o procesorek Attiny 2313. Oczywiście zrobiłem to w ten nazwijmy "lepszy sposób" czyli dwa timery, jeden oblicza czas równy 1 sekundzie, a drugi liczy impulsy. Kwarc zewnętrzny 11059200MHz, wszystko działa jak należy... ale mam problem z pomiarem czestotliwości w zakresie od 2 do 5 Hz z rozdzielczością...
Już wiem dziekuje za pomoc tak ma być chyba: $regfile = "m32def.dat" $crystal = 16000000 Config Pinb.1 = Input Config Pinb.2 = Input 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 Config Timer1 = Timer , Prescale = 256 Declare Sub Wysw_czas On Timer1 Odmierz_1s...
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...
Witam. Dostałem 4 sztuki ds18b20 w samplach i konstruuję termometr do szkoły. Napisałem program,udało mi się połączyć z czunikami i wyświetlić temperaturę na LCD,wszystko było ok. Oba czujniki miałem zamontowane na płytce prototypowej(mam na niej zmontowany cały układ). Po pierwszych testach przylutowałem do jednego czujnika skrętkę o długości ok 30...
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)...
OK pytanie poprawiam :) nie miałem na myśli żle działającego procesora tylko mój program oczywiście. jesli w bascomie to będzie działać to nie będę kombinował dalej zmostkowałem wejścia INT0 i T1 bo to jest ten sam impuls z wyjścia A enkodera, enkoder chodzi dobrze, ale obroty są liczone źle, dobrze są liczone jeśli obraca sie bardzo powoli. Przerwania...
ok dobra, napisze ci przykladowy kod, bo juz nie moge patrzec na twoje kody. $regfile = "m8def.dat" $crystal = 8000000 Config Pinb.1 = Input Config Pinb.2 = Input Portb.1 = 1 Portb.2 = 1 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 Config Timer1 = Timer...
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...
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...
Długi czas już siedzę nad tym programem, analizując inne programy i próbując różnych sposobów ale nie mogę zmusić tego do działania... Byłby ktoś skłonny wytknąć mi błędy ? Dodam, że jak pominąć całą sprawę z timerem to na lcd poprawnie liczy mi wartości (tzn prawie poprawnie bo 28 / 10 wychodzi 2.7999995 ale temu już zaradziłem) $regfile = "m32def.dat"...
Teraz poprawiłem ten program lecz znów nie działa. $regfile = "m8def.dat" $crystal = 8000000 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 Config 1wire = Portb.0 Config Timer1 = Timer , Prescale = 256 Config Pinb.1 = Input Config Pinb.2 = Input Deflcdchar...
$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...
On wcale nic nie liczy ponieważ w programie nie ma polecenia "Enable Timer0" ani "Enable Interrupts" więc Timer0 wcale nie jset uruchomiony ja ten program widze tak: Config Timer1 = Timer , Gate = Internal , Mode = 1 dim cnt as byte Sub Sec Counts = 0 Counter1 = 4150 Start Timer1 Do If Cnt = 15 Then Stop Timer1 Exit Do End If Loop End Sub Timer1_int:...
Sygnał mierzony na Pind.4. Mega na kwarcu zewnętrznym. $regfile = "M8def.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 Dim Czestotliwosc As Long Const Licznik = 22336 Config Timer1 = Timer , Prescale = 256 Config Timer0...
Witam proszę o wyrozumiałość gdyż dopiero zaczynam przygodę z mikro-kontrolerami. Znalazłem gdzieś na elektrodzie kilka projektów próbowałem coś z tego sklecić niestety nie ma za dużo tego na Atmege16 Dlatego próbowałem przerobić coś z programów gotowych dla inny Cu A więc chcę zrobić zegarek oparty na wyświetlaczach siedmio-segmentowych Mam dwa programy...
Witajcie napisałem program który co minute wysyłasygnał to na jeden port po następnej minucie na drugi port to steruje zegarem problem w TYM że zegar ten spóżnia nie wiele ale jednak w czym problem?? może zły kod??? poradzcie $regfile = "2313def.dat" $crystal = 8000000 Config Pinb.2 = Output Config Pinb.3 = Output Config Timer1 = Timer , Prescale =...
zmontowalem uklad, podpiołem do maluszka i pokazuje dwukrotnie wiecej. Przyjołem ze 1 impuls to 1 obrót silnika. Dodano po 1 Tak wyglada moj program, w sumie nie zadelarowalem na jakie zbocze ma reagowac licznik moze to byc przyczyną ??? $regfile = "89s8252.dat" $crystal = 16000000 $large Config Lcdpin = Pin , Db4 = P0.4 , Db5 = P0.5 , Db6...
Witam! Jak moge odliczyc 1us poprzez timer przy kwarcu 16 MHz ?? Posiadam procesor AT89S8252 jest to wogole mozliwe ?? jedną sekunde odliczam w ten sposób: $regfile = "89s8252.dat" $crystal = 16000000 $large Config Lcdpin = Pin , Db4 = P0.4 , Db5 = P0.5 , Db6 = P0.6 , Db7 = P0.7 , E = P3.5 , Rs = P3.6 Config Lcd = 16 * 2 Cursor Off Cls Dim...
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...
problem mój polega na nieprawidłowym wyswietlaniu cyfr . o ile w zakresie 0-99 wszystko jest ok., to powyżej 100 ma same zera : wyswietlacz ma 3 cyfry led-7-segmentowe i w założeniach ma liczyć czas od 0 do 999 sek pełny kod: '$sim $regfile = "m8def.dat" 'informuje kompilator o pliku $crystal = 8000000 'informuje kompilator o Config Portd...
Wielkie dzięki Witajcie a jak zrobić żeby można wyświetlać oba liczniki naraz??? coś rzem mi nie idą osobno tak liczniki co 1 sekunde $crystal = 8000000 Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.4 , E = Portb.5 , Rs = Portb.6 Config Lcd = 24 * 2 'configure lcd screen Config Timer0 = Timer , Prescale = 64 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...
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...
Witam Piszę program (bascom) i nadziałem się na problem z którym nie mogę sobie poradzić. Timer 1 pracuje jako zegar i po spełnieniu warunku , ma załączyć przekaźnik który ma być załączony na czas_pracy i po odliczeniu czasu pracy ma wyłączyć się na czas przerwy i zablokować włączenia przekaźnika na ten czas. Tak w skrócie: kod : $regfile = "m8def.DAT"...
Witam ! Programuje w Bascome, sercem ukladu jest Atmega8. W czym problem, otoz sterowanie wyswietlaczami odbywa sie multipleksowo po przepelnieniu Timera0 natomiast odmierzanie 1sekundy po przepelnieniu Timera1. Nie umiem sie wbic pomiedzy Timery z obsluga klawiaturki z 3 przyciskow ktorymi chcialbym ustawiac czas i budzik. Czy ktos umialby mi pomoc...
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...
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! 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...
Witam Mam problem z timerem w uc Atmega 8. Chciałem sobie napisać zegar,ale nie mogę tego zrobić przy użyciu timera,bo timer w ogóle nie generuje przerwania :| licznik chodzi i się przepełnia,bo wyświetliłem sobie jego wartość na lcd żeby sprawdzić co jest nie tak...załączam kod programu,bo już nie mam pomysłów co może być nie tak $crystal = 8000000...
Bardzo dziękuje za cenne rady. Oczywiście nie myliliście sie. Teraz już wiem o co w tym wszystkim chodzi:). Teraz kod wygląda tak: #include <avr/io.h> #include <avr/signal.h> #include <avr/interrupt.h> #include "delay.h" #include "lcd.h" #include "ds18x20.h" //-----ds18x20 volatile uint16_t decicelsius;...
Próbowałem tak $regfile = "m8def.dat" $crystal = 8000000 Config Pinb.1 = Input Config Pinb.2 = Input Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.2 , Config Lcdpin = Pin , Db5 = Portc.1 , Db6 = Portc.0 , Config Lcdpin = Pin , Db7 = Portc.5 , E = Portc.3 , Config Lcdpin = Pin , Rs = Portc.4 Config 1wire = Portb.0 Declare Sub Odcz_temp...
$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...
Problem w pewien sposob rozwiazany, moze komus sie przyda Dodano linie: $initmicro ........ _init_micro: Config Watchdog = 1024 Start Watchdog Return W tej postaci watchdog poprawnie resetuje uP: $crystal = 7372800 $regfile = "m168def.dat" $initmicro Config Aci = Off Config Lcd = 40 * 2 Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3...
bardzo dziękuje za pomoc - ten bezsensowny warunek byl kiedys sensowny ale skrocilem program. Musze pocztytac o tych Timerach i Counterach bo nie kumam tego np. dlaczego po zmianie na Counter teraz miga co 1 s. Jeszcze raz dzieki. Napisalem prosty zegarek $regfile = "m8def.dat" $crystal = 16000000 Config Portb.1 = Output Config Timer1 = Timer...
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...
Ja mam taki: $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 Portd.6 = 1 Config...
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...
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...
heh i jeszcze kilka malych problemow pisze tutaj aby wszystko bylo jasne :) chce wystawic na pinid.5 stan wyskoki i pozniej go zmienic czyli np config pind.5=output .. powiedzmy ze to jest w do loop do set pind.5 wait 1 reset pinb.5 wait 1 loop i oczywiscie to nie dziala caly czas pokazuje ze jest stan 0 na forum juz bylo poruszane ale tamten zapis...
Witam! Mam pytanie do osób programujących w Bascomie. Dlaczego po kilkukrotnym wciśnięciu przycisku P3.2 program się zawiesza i co zrobić by przez cały czas działal poprawnie? Dziękuję za poświęcenie chwili czasu. Config Timer1 = Timer , Gate = Internal , Mode = 1 Dim D As Byte Dim C As Word D = 0 Declare Sub Czas On Timer1 Przerwanie Enable Interrupts...
Witam. Próbuję złożyć obrotomierz samochodowy na mikrokontrolerze Attiny2313. Wykorzystuję do tego kit z AVT2711. Chciałem wykorzystać program z tego układu. Różnica jest w mukrokontrolerach, a artukule jest 89C2051 a ja chcaiłem to zrobić na attiny i wynik pokazywać na wyświetlaczu alfa numerycznym. Jednak coś mi nie wychodzi. Odpalam układ na sucho...
dobra, obiecany gotowiec i przy okazji manual pt "jak korzystać z manuala". W naszej przeglądarce wpisujemy adres www.google.pl Wpisujemy tam Atmega8, po załadowaniu się strony z rezultatami klikamy w link posiadający w tytule "datasheet" i sprawdzamy czy jest on z atmela. Po pomyślnym otwarciu się datasheetu z indeksu po lewej stronie wybieramy 16-bit...
Połowa mostka H : https://obrazki.elektroda.pl/9842884200_... Obecnie są takie napięcia zasilania. Jutro wrzucę kod w Bascomie. [syntax=vbnet] Config Portd.0 = Output Config Portd.1 = Output Config Portd.2 = Output Config Portd.3 = Output Portd.0 = 0 Portd.1 = 1 Portd.2 = 0 Portd.3 = 1 Dim X1 As Byte Config Timer1 = Timer , Prescale...
To część programu do obsługi pewnego sterownika. Jest tam to co Cie interesuje. $regfile = "m8def.dat" $crystal = 8000000 Config Lcdmode = Port 'w pliku raportu będzie informacja o trybie pracy Config Lcdbus = 4 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portc.4 , Rs = Portb.0...
Najlepiej by było gdyby z zielonego przy 1000rpm płynnie przechodziła w czerwony przy ok 6000rpm. do tego trzeba wykorzystać PWM , a obrotomierz najlepiej zrobić na przerwaniach i dokładnie odliczać 1s bo "wait 1" to napewno nie jest 1 sekunda , tu macie przykład częstościomierza: Config Timer0 = Counter , Gate = External , Mode = 1 Config Timer1 =...
Config Timer0 = Counter , Gate = External , Mode = 1 Config Timer1 = Timer , Gate = Internal , Mode = 1 Config Lcd = 16 * 2 Dim Frequency As Long Dim Temp As Byte Dim Counts As Byte Dim kon As string *3 Declare Sub 1sekunda On Timer1 Timer1_int On Timer0 overflow Enable Interrupts Enable Timer0 Enable Timer1 kon="Hz" Frequency = 0 Cls Do...
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 =...
(at)dondu Twoje artykuły czytałem dokładnie ;-) Z kodu poniżej wycięte ustawianie portów (bonie widziałem żadnej różnicy w zużyciu prądu). Procek ustawione fusami na 8MHz wewnętrzny z podziałem przez 8 [syntax=vbnet] $crystal = 1000000 ' ustawiamy prędkość zegara $baud = 9600 ' ustawiamy prędkość transmisji $hwstack = 220 ' ustawiamy wielkość stosu...
Witam! Zabrałem się nie dawno za przepisywanie dwóch programów z książki Marcina Wiązani. Są to programy: Sterowanie z poziomu 1-wire dwoma termometrami, Zegarek na timer1. Mój problem polega na tym że nie wiem jak to złączyć w jedną całość tzn. chodzi o to żeby współpracowały ze sobą jak należy, ponieważ tylko ciągle wyświetla mi się zegarek na początku,...
Witam! Dziekuje za zainteresowanie tematem, oto program jaki wymłodzilem: $regfile = "89s8252.dat" $crystal = 16000000 $large Config Lcdpin = Pin , Db4 = P0.4 , Db5 = P0.5 , Db6 = P0.6 , Db7 = P0.7 , E = P3.5 , Rs = P3.6 Config Lcd = 16 * 2 Cursor Off Cls Dim Obroty As Integer , Obrotym As Integer , Obrotys As Integer Dim S1 As String * 16...
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...
Mam pewien problem, mianowicie zrobiłem sobie komputer do samochodu, liczy mi spalanie, predkosc, przejechany dystans, na ile starczy jeszcze paliwa, spalanie chwilowe temp i jeszcze pare innych rzeczy. I mam 2 problemy: 1 - kiedy włącze światła wszystko sie zawiesza....(musze odpalac auto z włączonymi swiatłami wtedy komp się uruchamia bez problemu)...
Witam, mam nadzieję, że piszę we właściwym dziale. Mam problem w kodzie poniżej, w którym zliczam czas od góry w dół. Program wstępnie zlicza prawidłowo, ale zamiast cyfry zero wyświetla mi jakiś dziwny znak którego nie definiowałem. W kodzie drugim zliczającym od dołu do góry wszystko działa ok zero się wyświetla. Gdzie jest błąd? [syntax=basic4gl]...
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...
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ć):...
Popełniłem taki oto kod jak poniżej. W założeniu ma to być zegarek stawiany pilotem, oraz z dwoma DS18B20. Założyłem sobie, że nie użyję żadnego Wait, ani Gosub. Mam jednak jeden problem z odświeżaniem czasu na LCD. Niby dwukropki migają co sekundę, ale sekundy nie są wyświetlane poprawnie. Przez pewien czas jest niby dobrze, ale czasem jakby pomija...
Witam. Ponownie DS :( ale jakoś nie mogę znaleźc błedu. HW i biblioteki 1 wire sprawdzone z inym programem i DS18(nieB)20. 1) Wartośc po 0xBE i reset_1w () przez chwile pokazuje 85 (poprawnie) a potem tylko 127. Timingi sprawdzalem 2) Jak poprawnie zapisac temperature z dokadnoscia do 0.1 na dwoch bajtach unsigned char? Nie chce uyzwac floatow ani int...
Czes mam problem z ponizszym programem a dokladniej jest jakis blad na koncu bo niechce sie skompilowac blad zostal zawarty w zalaczniku. $large $baud = 9600 $crystal = 24000000 Config Lcd = 20 * 2 Cursor Off Config Timer0 = Counter , Gate = External , Mode = 1 Config Timer1 = Timer , Gate = Internal , Mode = 1 Config Timer2 = Timer , Gate = Internal...
Witam, od jakiegoś czasu staram się wyłapać choćby najprostsze interrupty i włączyć sobie interruptem diody podłączone do atmegi, ale wygląda mi na to, że coś nie tak włączam obsługę interruptów. Oto kod: [syntax=c]/* * SensorTest.c * * Created: 2011-11-03 23:56:52 * Author: Prpht */ #include <avr/io.h> #include <avr/interrupt.h> uint16_t...
Witam. Robię obrotomierz na 89c2051. Założenie jest takie żeby było jak najmniej elementów. Na wejście timera dałem tranzystor npn. Na jego bazę daje impulsy sterowania cewką zapłonową. Obrotomierz ma być do motocykla 4T 1 cylinder, więc jeden impuls to jeden obrót. Jak układ testuję na transformatorze podpiętym do sieci to ładnie pokazuje wynik "obr...
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 problem, że zrobiłem projekt Odbiornika Morsa na ATmedze8. W oryginalnym projekcie jest kwarc 10 MHz, a ja użyłem 10.240 MHz gdyż taki miałem w domu, a sklepu elektronicznego w mojej okolicy nie ma. Jak podłącze ten odbiornik do komputera i z programu morsik coś wysyłam to np. "adrian" dekoduje poprawnie, a "jarek" już nie, tylko na LCD pojawia...
counter1 bascom enable debugging inwerter enable
hydrauliczna prasa zawór generator funkcyjny kupić nadawać 433mhz
bosch wan2006spl25 firstchip fc1178bc
Nagły spadek mocy w Toyota Land Cruiser 3.0 diesel Naprawa potencjometru ALPS w Sony STR-GX70ES