Mówisz masz na timerze. $regfile = "m16def.dat" $crystal = 1000000 $hwstack = 32 $swstack = 8 $framesize = 16 Config Timer1 = Timer , Prescale = 1024 Enable Interrupts Enable Timer1 Start Timer1 On Timer1 Odmierz_czas Const T = 6942 Config Portb.1 = Output : Portb.1 = 1 : Led Alias Portb.1 Config Portb.2 = Input : Portb.2 = 1 :...
Proszę. Gotowe bo jak widzę kilka If`ów do tej samej zmiennej zamiast Select Case i tym podobne kwiatki... [syntax=vbnet]$regfile = "m32def.dat" $crystal = 11059200 $hwstack = 64 $swstack = 16 $framesize = 64 Const Timeout_time = 8 'x500ms Config Submode = New ' config LCD 2X16 Config Lcdpin = Pin , Rs = Porta.2 , E = Porta.3 , Db4 = Porta.4 , Db5 =...
Robi się to prosto na wejściu ICP Atmegi, mierzysz czas pomiędzy kolejnymi zboczami, raz jest opadające, raz narastające itd.. potem to tylko interpretacja wyników, liczenie bitów i po odliczeniu 64 bitów z transmitowanych 66, bo dwa ostatnie dla uproszczenia procedury pomijasz. wyświetlasz na LCD lub wysyłasz po RS232 do komputera, a tam wyświetlasz...
Config Pinb.3 = Output 'Config Timer0 = Pwm , Prescale = 1 , Compare Pwm = Clear Down Set Tccr0.pwm0 Set Tccr0.com00 Set Tccr0.com01 Set Tccr0.cs00 Ocr0 = 127 'T2 już normalnie ;) Config Timer2 = Pwm , Prescale = 1 , Compare Pwm = Clear Down Ocr2 = 127
Witam. Znalazłem coś innego i po modyfikacji działa jak powinno . Przypisany jeden klawisz pod PB.2 wysyłający LewyALT + Q. Jest też zmiana u gnieździe usb D- PD.3 na PD.4. [syntax=vbnet] 'Author : Rick Richard 'www : http://www.sloservers.com/swusb 'Created : Jul 29, 2009 'Version : 1.00 '***************************************...
Dzisiaj postaram się przybliżyć Wam mostki H. Mostek H jest układem elektrycznym umożliwiającym zmianę kierunku silnika prądu stałego poprzez odwracanie polaryzacji napięcia na jego wyjściu. Mostek taki można wykonać np. z przekaźników, tranzystorów lub można zastosować gotowy układ scalony. Nazwa pochodzi od graficznego odwzorowania układu. Mostek...
Dzięki za odpowiedź! nie ma powodu, żeby nie była powtarzalna Czyli bez różnicy, którą wersję zrobię bo nic poza tym interwałem nie będzie. Zatem biorę się za zrobienie na gotowo i spróbuję dwie wersje; waitms i timer. Drążę prosty temat, bo ten wzorzec ma iść do GUM, oni sprawdzą, zapłacę, wystawią świadectwo, zaplombują i koniec grzebania. Zamierzam...
[syntax=basic4gl]'KONFIGURACJA PRZERWAN PROCESORA Config Timer0 = Timer , Prescale = 256 Enable Interrupts On Timer0 Odmierz_1s Enable Timer0 Load Timer0 = 144 Odmierz_1s: Load Timer0 = 144 Incr Licz_5ms If Licz_5ms = 200 Then Licz_5ms = 0[/syntax] Jeśli tak napiszę kod w Bascom przy zastosowaniu kwarcu 7.3728 MHz to przerwanie odmierz_1s będzie faktycznie...
Tylko, że ja pytam o problemy Bascoma z USARTem. Procek bez problemu działa na 4MHz. Jednak pokaż jak masz ustawione fuse? $crystal to chyba tylko informuje program jak taktowany jest procesor a nie przestawia jego częstotliwości, wpisz 8000000 i powinno zadziałać prawidłowo. To się zgadza ale, w tym uC masz specjalny rejestr "CLKPR – Clock Prescale...
Po tej zmianie działa dobrze , pisałem program na podstawie kodu z zestwu AVT5266 w tym kodzie i projekcie był zastosowany kwarc 8 MHz i wpis Prescale w kodzie było 1 ,a także był wpis Enable Timer1. Też atmega 8 sterował Driverem L293. Aplikacja wysyła litery od 0 do 9 - max prędkość to litra q Aplikacja pochodzi z Sklepu PLAY. Problem rozwiązany Dzięki
Oczywiście że przekompilowałem. Jedynym pomysłem, jaki przychodzi mi teraz do głowy jest zmiana kolejności w deklaracji Timer1 Timer1 = Pwm ,Prescale = 1 , Pwm = 10 , Compare A Pwm = Clear Down Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Prescale = 1 Dla AT90S8515 nie miało to znaczenia, ale może dla ATmegi jest to istotne. Niestety nie mogę...
Dzięki wielkie !! Pomogło , aczkolwiek nie rozumiem dlaczego bez tego też czasem działało zależnie od kolejności wpisów ? Teraz działa OK bez względu na kolejność wpisów, i reszty (czyli początku programu w którym pewnie jest mnóstwo innych błędów :-) ) [syntax=vbnet] $regfile = "m2560def.dat" ' specify the used micro $crystal = 16000000 ' used crystal...
Mam inny pilot który bankowo nadaje w RC5.I nic.Zero reakcji W takim razie po co przy konfiguracji Getrc5 można zmienić domyślny Timer0 na Timer2? Czy tylko po to żeby zwolnić Timer0 jeśli jest używany do innej funkcji? i co nam daje zmiana mnożnika PRESCALE określana przy funkcji GETRC5? W gruncie rzeczy chodzi mi o to że mam parę projektów wykorzystujących...
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...
aha 2^16 no tak bo 2^8 256 bo każdy bit jest kolejną potęgą liczby 2. P.S. Jak mawia mój nauczyciel od cyfrówki każda liczba w układach cyfrowych jest potęgą liczby 2. :D A może wyłumaczyć mi ktoś tak jaśniej niż whelpie bascoma ;) co to jest ten prescaler i co on dzieli. wyczytałem na innym forum że liczba podana w prescale dzieli częstotliwość pracy...
Nadal nie rozumiem kwestii konfigurowania timera tak aby zliczał tyle ile chcę. Poczytałem parę wątków i nadal nie wychodzi. Aktulanie na Atmega16 z taktowaniem 4MHz staram sie uzyskać przerwanie co 100ms. Dla testów wyświetlam zmiany na LCD [syntax=basic4gl] $regfile = "m16def.dat" $lib "I2C.LBX" '$lib "mcsbyte.lbx" $lib "Ds1307clock.lib" $crystal...
Witam Odświeżę wątek. Dodałem układ UDN2981A pomiędzy Atmege a wyświetlacze, wyrzuciłem tranzystory które sterowały anodami oraz ich rezystory z baz. Działa całkiem nieźle. Jest jedno ale... jasność. Migotanie nie widać, ale jasność jest słaba, tzn. gdy nie ma dużego słońca to ujdzie, podobnie jak w nocy. Zastanawiam się, czy pomoże coś zmiana częstotliwości...
Witam serdecznie. Próbuje stworzyć generator PWM o zmiennym wypełnieniu i zmiennej częstotliwości. Generator ten chce stworzyć na ATmega32 12MHz w języku BASCOM. Zmian dokonywać będzie można przez dwa potencjometry. Mam już napisany program ale niestety sygnał na oscyloskopie wariuje. Co jakiś czas jest przebicie innych wartości. Walczyłem z tym dość...
Może wkleję cały kod : $regfile "m32def.dat" $crystal = 8000000 Dim Zmianna As Byte Dim Porownanie As Byte Config Portc.1 = Output Config Timer0 = Timer , Prescale = 1 Config Int0 = Rising On Int0 Zero Porownanie = 255 Enable Interrupts Enable Timer0 Counter0 = 255 Glowny: Set Portd.2 Start Timer0 Do Loop End Zero: Stop Timer0 Reset...
Witam Mam płytkę Loggera GPS + SD + PCF8563. Jeśli chodzi o GPS i zapis na SD wszytko jest OK. Problemem jest ( i to pierwszy raz się z czymś takim stykam ) odczyt danych z z układu PCF8563. Otóż dla pewnych wartości sekund, odczytana wartość czasu - godziny jest większa o 40 ( czterdzieści ). Czyli jeśli czas jest 22:40:02 to jest wyświetlany poprawnie,...
Dzień dobry, Popełniłem prosty programik na ATtiny2313. Przy naciśnięciu któregoś z guzików (Pind.0 lub Pind.1), zmienia się wartość rejestru Pwm1a - porównywanie ze stanem timera1. Dzięki temu uzyskujemy efekt rampy i rosnącą częstotliwość na wyjściu. Niestety program działa o tyle dziwnie, że czasami się zacina - tzn czasami zmiana częstotliwości...
Oto kod jednego z programów z którym mam problemy: 'C029f.bas Generator impulsów prostokątnych ' UWAGA! Wejsciem EN(able) modułu LCD steruje końcówka PB.1 ' do wyjscia PB.3 dołączona przez rezystor 1k anoda diody LED (katoda do masy) Dim Impuls As Word , Przerwa As Word , Czas As Single , Zmiana As Bit , Napis As String * 9 Config Timer1...
bascom charakteryzuje sie latwoscia programowania o ile w asemblerze musisz dobrze znac budowe procka to w bascomie az taka duza wiedza nie jest potrzebna <co moze jednak nie jest az takim duzym plusem :roll: >chac np uruchomic licznik w asemblerze trzeba wpisac odpowiednie stany w odpowiednie rejestry natomiast w bascomie zalatwiaja to wpisane...
Spróbuj zamiast Timebase zrobić Load Timer0, 31250 (nie będzie przeskakiwał po kodzie ponad 30 tys razy tylko zliczy wewnętrzne tyle impulsów i po przepełnieniu przejdzie do podprogramu), w ogóle ustawiłbym Prescale na wartość około sekundy chyba, że chcesz mieć jak najdokładniej. [syntax=basic4gl]$regfile = "m8adef.dat" $crystal = 8000000 $hwstack...
Już pisałem (pod źródłami) co jest nie tak... Co do Xtal to w każdym języku jest to istotne... Jeżeli zmieniasz kwarc to piszesz program od nowa ? A tak jak uzależnisz wartości zmiennych od Xtal i prescale to zmieniasz definicje na początku, a program działa dalej prawidłowo... No to poprawiony kod (niesprawdzony ;) ) : CONST T1_Prescale = 1024 CONST...
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...
jeszcze nie tak szybko z tą publikacją gdyż teraz mam drobny problem z odbiornikiem. Niby działa ale po pierwsze ta adaptacyjna zmiana podświetlenia powinna być płynna? U mnie praktycznie albo świeci na maxa albo lekko, tzn są tylko dwa stopnie świecenia + wyłączony. To jeszcze nie tak źle, bo gorszy jest alarm. Próbuję rozwikłać jak działa to w programie...
tu masz trochę opisane w tym [url=http://www.elektroda.pl/rtvforum/to... wprawdzie bascom ale zasada i ustawienie PWM są tam gotowe do podglądnięcia, przy okazji troche teorii, warto poczytać. Należy pamiętać że częstotliwość kwarcu jest ściśle powiązana z częstotliwościa PWM a to dalej powiązane jest w częstotliwościa wystawiania...
Panowie to jest mój pierwszy program w Bascomie, więc nie zabijajcie mnie od razu. Wiem roi się tam od GOTO , wiem to zbrodnia ale tym zajmę się później. Teraz powiem o co chodzi. To jest program : http://obrazki.elektroda.pl/8911396900_1...
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...
Witam kolegów. Potrzebuję sterownika pompki do C.O. Znalazłem program napisany w BASCOM i przerobiłem go nieco do swoich potrzeb. Działa wszystko prócz HISTEREZY. Przy powolnym narastaniu temperatury, która skacze +/- pompka włącza się i wyłącza, czyli histereza nie działa. Histerezę zrobiłem wg. porad z forum. Czy może ktoś pomóc? Oto kod: [syntax=vbnet]$regfile...
Witam Mam Atmega32A + PCF8563 + PCF8574 + RFM12 + DS18B20 +DHT11. Port danych LCD to Port.A, ControlPort to Port.C. I2C standardowo na Portc.0 Portc.1. Niestety jest problem z obsługą I2C, tzn. zegar PCF8563 nie działa w ogóle ( na LCD puste pole ) , a klawiatura na PCF8574 - tylko jeden klawisz i to nie ten, który jest przypisany w kodzie ( działa...
Witam! Od kilku dni siedze i nie mogę nic wymyśleć :( Bez ogrudek - podaje źródło: $regfile = "m16def.dat" $crystal = 8000000 'definiowanie zmiennych i stałych Dim T As Integer Dim Licznik_przerwan As Byte Dim Dioda As Bit 'konfigurowanie interfejsu 1Wire Config 1wire = Portd.1 'konfiguracja wyświetlacza Config Lcdpin = Pin , Db4 = Portc.6...
Witam Piszę program do sterownika pieca Wszystko po włączeniu działa przez około 15min a później na wyświetlaczu pojawiają się dziwne znaki także znak z Deflcdchar który nie jest używany tylko zdeklarowany. Przyczyna jest chyba tylko wyświetlacza ponieważ po przystawieniu zapałki do czujnika DS18B20 program działa prawidłowo i włącza alarm jednak wyświetlacz...
Czy Kolega będzie może wiedział co jest nie tak od strony programistycznej ? Tzn. jeśli wyświetlam stałe wartości to jest ok, podobnie jak wyświetlam w pętli For... Next od 1 do 59. Dodałem jeszcze obsługę LCD, żeby widzieć, co się dzieje z czasem. Ale jak podepnę do tego PCF8563 i odczytuje czas z niego, a dopiero później wysyłam do SAA1064 to jest...
Witam panowie od razu podkreślę że jeszcze uczę się bascoma więc proszę nie krzyczeć i nie usuwać tego postu do kosza Siedzę już nad tym 3 dzień i efekt mojej pracy nie najgorszy ale mam parę pytań po pewnych rzeczy nie rozumiem i nie mogę rozwiązać. Więc tak założeniem był pomiar temperatury przez ds18b20 wyświetlenie je na LCD i 4 wyświetlaczach 7...
Bascom - wersja 1.11.95 Kod, no jest tego sporo: - zegar PCF8563 - Zapis na SD - dwa czujniki DHT11 - odczyt z PCF8574AP ( klawiatura ) - RC5 - ma być DS18B20 - ma być DCF77, ale nie doszedłem do tego momentu ( tzn testowałem na innym procesorze i działało ) Działa - zegar PCF8563 - dwa czujniki DHT11 - odczyt z PCF8574AP w przerwaniu ( klawiatura )...
Poniżej zamieszam kod w Bascom pisany dla zestawu uruchomieniowego ZL11AVR. Dioda podczerwieni dołączona do Pinb.3. Chyba najważniejsze z tego, to komenda wyzwalająca migawkę: Sonysend &HB4B8F , 20 (Sony alpha korzystają z 20 bitowego protokołu SIRC) W razie pytań postaram się pomóc. [syntax=basic4gl] 'Program zegara wykorzystującego przerwania...
Witam Walczę z programem w Bascomie (coraz mniej mi się on podoba) listing poniżej. Docelowo będzie to zegar na lampach nixe. Projekt bazujący na mirley, ale zmianę ustawień chcę zrobić na impulsatorze. Dlaczego funkcja Zmiana_godziny i Zmiana_minuty nie zwraca mi wartości? Edytowałem post umieszczając w tytule znacznik
Witam. mam problem ...... Więc moje pytanie brzmi czy jest możliwość programowej zmiany prescale podczas działania programu ? A jeśli da się to w czym może być problem ? Z góry dziękuje za pomoc Sprobuj RESET prescaler -> Set Bit1 w SFIOR Nie mam w tej chwili czasu na dokladniejszy opis, wiec przeanalizuj ta opcje w DS. albo tu: str. 143 http://books.google.ca/books?id=TE54lJ7X...
Widzę że muszę trochę sprostować. 1. Nawet kosmicznie często wywoływane przerwanie zdąży się wykonać choć by nie wiem jak długo ono trwało, bo przerwania po wejściu w obsługę jakiegoś przerwania są blokowane i odblokowywane są dopiero po zakończeniu się obsługi tego przerwania. Więc twierdzenie że przerwanie nie zdąży się wykonać w ciągu 128us bo samo...
Której? PLL czy tej z dwoma Timerami? Ta z PLL jest bardzo zamotana (albo inaczej - zamotana nie jest ale wymaga dużej ingerencji procesora. A to bardzo spowalnia program główny więc trzeba to napisać a assemblerze i własnie to powoduje zamotanie). Podam więc ten drugi sposób: $regfile = "M8def.dat" $crystal = 8000000 $hwstack = 64 '---------------------------------------...
Może tak: Config Timer1 = Pwm , Pwm = 10 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Up 'Config Timer0 = Pwm , Prescale = 1 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down Start Timer1 Dim I As Integer Config Portb = 8 Do Do Incr Pwm1a If Pwm1a = 1000 Then Exit Do Waitms 10 Loop Do Decr Pwm1a If Pwm1a = 5 Then Exit Do...
Taka składnia dotyczy tylko Timer1/Timer3/Timer4/Timer5. Nie zadziała poprawnie dla Timer0 i Timer2. Choć z moich osobistych obseracji to najnowszy BASCOM-AVR i spora grupa procesorów poprawnie obsłuży taką składnię: CONFIG TIMER0 = PWM , PRESCALE = 1 | 8 | 64 | 256 | 1024 , COMPARE A PWM = CLEAR UP | CLEAR DOWN | DISCONNECT , COMPARE B PWM = CLEAR...
Proponuję następujące zmiany: Dla zegara 8MHz Config Timer0 = Timer , Prescale = 8 wtedy jeden cykl = 1us - łatwo się liczy. Następnie w przerwaniu: Przerwanie: Timer0 = Timer0 + 213 If Flaga = 1 Then Toggle Portc.7 Else Portc.7 = 0 End If Return Dalej w podprogramie "Send_transmit" zamiast: Portc.7 = 1 napisz: Flaga = 1 a zamiast: Portc.7 = 0 napisz:...
BlueDraco nie w tym rzecz. Janoo0 ja steruje silnikiem za pomocą L298 i problem wydaje mi się rozwiązany (nie testowałem jeszcze wszystkich silników). Sprawa była taka że mostek może przyjąć sygnał max 50KHz, przy prescale = 1 częstotliwość PWM równa się częstotliwości krwarcu czyli 16MHz (trochę za dużo :)). Po zmianie prescalera na 1024 silnik zaczął...
Witam sprawdź ten kod co prawda są inne numery portów i inny procek ale jak zmienisz powinno działać. Problem jest jeden w momencie jak naciskasz przycisk i zmieniasz końcówkę na WYJŚCIE to stan tego pinu Musi być (0) Niski , żeby nie zrobić zwarcia. '$sim $regfile = "attiny2313.dat" $crystal = 11059200 $baud = 9600 enable interrupts 'włącz...
[syntax=basic4gl]Config Timer0 = Timer , Prescale = 1024 Enable Timer0 : On Timer0 Przerwanie0 Dim Tmp As Word Tmp = 0 Dim Ptimer1 As Word Ptimer1 = 0 Do If Klawisz = 0 Then If Ptimer1 = 0 Then Ptimer1 = 100 End If If Ptimer1 < 95 And Klawisz = 0 Then Tmp = 1 End If End If If Tmp = 1 And Ptimer1 < 85 And Ptimer1 > 70 Then If Klawisz = 1 Then...
Zastosowałem się do instrukcji i dalej nic mi nie wychodzi.Przepraszam ,że zawracam głowe ale ja dopiero się uczę i to moje pierwsze pisanie. Dodano po 7 Teraz wygląda to tak: $regfile = "2313def.dat" $crystal = 800000 Config Pind.0 = Output Config Pind.1 = Output Config Timer0 = Timer , Prescale = 256 On Timer0 Odmierz_1s Dim Licz_8ms As...
Po ciężkich zmaganiach z metodą losową dla kolorów postanowiłem porzucić ten pomysł i zastosować przewidywalny sposób który będzie się powtarzał co jakiś czas. Może i nie jest to rozwiązanie pierwsza klasa, ale działa. Nie stosowałem jednak korekcji gamma, bo przy rozdzielczości PWM 8 bitów i zastosowaniu płynnego rozjaśniania było widać przeskoki (mruganie)...
Tak co jeden cykl. Prescale jest 64 wiec nie tu chyba problem. Nic sie nie dzieje na wyswietlaczu a w symulatorze tez nie pokazuje zmian zmiennych.
Nie analizowałem Twojego programu- ale może to Ci się przyda. Może moje stare belferskie umiejętności (teraz to się nazywa- zdolności pedagogiczne) jeszcze całkiem nie zanikły. 'Program poglądowy do unikania wait 'Prescale oczywiście można zmienić 'licznik też i Temp0 też $regfile "m8def.dat" $crystal = 8000000 Config Lcd = 20 * 2 Config Lcdpin...
Udało mi się pogodzić te dwa timery.Timer1 pozostał bez zmian lecz timer2 zmieniłem: prescale=256 timer2=6 Udało mi się do tego dojść metodą prób i błędów ale teraz wszystko działa jak należy ;]
Generalnie, W Bascomie obsługa RC5 pozostawia wiele do życzenia dlatego też Mark w najnowszej wersji ma wprowadzić obsługę RC5 na przerwaniu ICP ("prawdziwie" w tle) według poniższego kodu, który udostępniam i polecam: [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 8000000 Config Timer1 = Timer , Capture Edge = Falling , Prescale = 8 '1 tick= 1...
Witam. Mam pytanie. Ja mam kwarc 12 MHz i jak wyliczyć te liczby i czy coś zmieniać w prescale. Dziękuję za odpowiedz i pozdrawiam. $crystal = 12000000 i oczywiscie zmiana sposobu taktowania i czestotliwosci w FuseBitach jezeli masz ATmege.
Witam. [syntax=basic4gl]Ustaw F_CPU na 8000000 Hz 'Declarujemy zmienną np.Licz Dim Licz As Byte Config timer0 = Timer , Prescale = 256 Enable Interrupts Load Timer0 , 250 '--przerwanie będzie co 8ms On Timer0 Przerwanie 'W przerwaniu: Przerwanie: Load Timer0 , 250 Incr Licz If licz = 125 Then Licz = 0 Toggle Portb.6 '--- zmiana stanu co 1sek End If...
Tak wiem że należy odpalić timer na początku i zatrzymać na końcu i odczytać jego wartość.. no nic. Dziękuję za wypowiedzi tak czy inaczej.. Odp. kol. Draco była troche sarkastyczna, bo na tak prostą procedurę nikt, kto ma choć troche rozeznania w tej dziedzinie chyba (!) nie szuka pomocy. Mopzesz to zrobić na kilka sposobów: 1. mierzyc czas metodą...
U mnie wywalał kiedyś ten sam błąd, a niby wszystko się zgadzało... Trzeba metodą prób i będów. Proponuje konfigurację timera zrobić tak: Config Timer0 = Timer , Prescale = 1 a resztę pozostawić bez zmian o ile się nie mylę. W bascomie nic dawno nie pisałem, teraz bawię się w C.
Poniżej mój testowy program w bascomie. Procek m8, wew. zegar 8 mhz. Testowałem na nikon D80 - działa OK. ' PILOT NIKON ML-3 ' ZEGAR 8 MHZ Dim I As Word Config Timer1 = Timer , Prescale = 1 , Compare A = Toggle , Clear Timer = 1 Config Portd.5 = Output Reset Portd.5 Compare1a = 100 Enable Interrupts Disable Timer1 Reset Tccr1a.com1a0 '***************************************...
a może plynnie ?? . . Config Timer1 = Pwm , Pwm = 10 , Prescale = 8 , Compare A Pwm = Clear Down Config Adc = Single , Prescaler = Auto , Reference = Avcc . . . Wartosca = Getadc(2) If Wartosca > Pwm1a Then Waitms 1 Incr Pwm1a Elseif Wartosca < Pwm1a Then Waitms 1 Decr Pwm1a End If Coś w tym stylu działa mi bezproblemowo. Wartość 0v -0,...
Udało mi się odpalić program z książki Pana Wiązani, ale tam timet odmierza 1s Jak to przeliczyć? Jest jakiś na to wzór? Rzeczywiście musiało się 'udac odpalić' bo ten program nie jest pozbawiony błędów (!) \ A jak zrobić żeby odmierzał np 10 sekund? Zmiana preskalera wydłużyła max do 2sekund czas. Aby timer1 odmierzył inne/dowolne interwały czasu,...
Zastosowałem następujące modyfikacje: - dodałem diodę zwrotną + kondensator, - zmianiłem częstotliwość proca z 4Mhz na 1Mhz Zmiana współczynnika prescale na inną niż 1, przy próbach powodowała: - miganie napisów na wyświetlaczu LCD i jego podświetlania (2 pozostałe pwm wykorzystywane są do ustawienia kontrastu i jasności podświewtlania LCD), - mniej...
No to już dobrze :) Dodaj te linie definiujące stos z wcześniejszego posta. Może to one są winne. Którą masz wersję bascoma ? EDIT: Jak byś chciał go z 12Mhz pędzić to zmień linie: [syntax=basic4gl]$regfile = "attiny2313.dat" $crystal = 12000000 Config Timer0 = Timer , Prescale = 64 Const Przerwanie = 219 '12MHz/64/37=5068Hz /32 poziomy PWM = ok 158Hz(PWM)...
Witam od 2 godzin draże problem i już troszkę jestem bezradny. Sprawa tyczy się procesora jak w temacie czyli ATmegi169 i Timera1 w niej. Chcę wywołać najprostsze przerwanie po przepełnieniu i żadnym sposobem mi się nie udaje. To że wszytko jest poprawnie testuję tak ze po podmienieniu w kodzie 1 na 0 (zmiana z timera1 na timer0) wszytko zaczyna ładnie...
Odświeżam bo zmiana czasu jest rozwiązana w Bascom-ie bezpośrednio na dowolnej ATMega. Nie potrzeba zewnętrznego RTC. [syntax=vbnet] $regfile = "m32def.dat" 'procesor $crystal = 11059200 $hwstack = 64 $swstack = 64 $framesize = 64 $lib "Datetime.lbx" Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.1 , Db6 = Portb.0 , Db7 = Portd.6 , E = Portb.4 ,...
Witam! Mam problem z programem w bascom'ie. Chce generować przebieg prostokątny na jednym z wyjść mikrokontrolera, lecz częstotliwość przebiegu wygenerowanego ni jak się ma do częstotliwości która powinna być wygenerowana. Częstotliwość obliczam dzieląc częstotliwość taktowania kwarcu (w moim przypadku 8MHz) przez podział pleksera ustawiony w timer0...
Pobawiłem się dziś chwilkę programowym PWM. Jest to rozwiązanie na 8 kanałów - 25 może być ciężko pociągnąć ale oczywiście możesz próbować rozbudować program i zmienić częstotliwość zegara czy wywołania przerwań. Pierwszy to demonstracja tworzenia w zasadzie dowolnie biegnącego światła - dane umieszczamy w liniach Data (wartości od 0 zgaszone do 8 max...
Co do wyłączenie światła po 30 sek. Dodaj dodatkową zmienną bit która będzie ustawiana np: na 1 po wyłączenia światła przez timer po 30 sekundach a dzięki niej nie będzie ponownie włączane światło przez wciąż otwarte drzwi (stan niski na wejściu uC). Dopiero zamkniecie drzwi ( stan wysoki na wejściu uC) spowoduje zmianę tej zmiennej na 0 dim 30SEK as...
Pojawiły się małe komplikacje. Po podłączeniu 4 wentylatorów odświeżanie jest tak duże ,że wynik zmienia się bardzo szybko i na ostatnich 2 cyfrach widać tylko 88. Dziwne jest to że po podłączeniu 1 odświeża np. co 1 sec po podłączeniu 2 już co 500 ms a po 4 to chyba co 50 ms. Zmiana PRESCALE nic nie daje. Nie sprawdziłem tego wcześniej bo nie miałem...
Jeszcze jedno. Ten program większość czasu spędza na wyświetlaniu. Wydłuż czas odświeżania wyświetlacza poprzez usunięcie Load Timer0 , 150 i zmianę w Configu timera0 - Config Timer0 = Timer , Prescale = 64. Spróbuj zmniejszyć czasy w transmisji do SAA i raczej wyłącz wyświetlacz na czas transmisji do SAA - zatrzymaj timer i wygaś wyświetlacz. Pamiętaj...
Aż se na płytce złożyłem ten układ i program sprawdziłem. No i faktycznie świeciło na stałe. Do poprawienia były bzdety. Wklejam jeszcze raz, przetestowany i na 100% wszystko działa jak chciałeś [syntax=basic4gl] $crystal = 8000000 'Deklaracja częstotliwości kwarcu $regfile = "attiny2313.dat" Config Timer1 = Pwm , Pwm = 8 , Prescale = 8 , Compare A...
Dorzucam wspomnianą konfiguracje timera1. [syntax=basic4gl] Config Timer1 = Timer , Prescale = 64 On Timer1 Odmierzanie_czasu 'na rezonatorze 11059200 Hz Timer1 = 48256 'przerwanie wywolywane co 100 ms 10razy na sekunde Start Timer1 Enable Timer1 On Urxc Odbieranie_rs: 'odbieranie znakow z UARTA Enable Urxc On Utxc Wysylanie_rs: 'wysylanie znakow z...
Program zajmuje 50%. Może i jest źle napisany ale działa.. Ja bym to stwirdzenie troche skorygował; Program działa tak jak jest napisany!... bo - "Jest jeszcze jeden problem." Co jakiś czas temperatura podskakuje o 10 stopni a czasami nawet do 200 podskoczyło co spowodowało zbędne załączenie przekaźnika. Z czym jest problem? Popatrz na pracę timera0,...
Witam. Potrzebuje licznik co 1us sprawdzam poprawność działania na 1s i jakoś nie działa program do odliczania 1s działa : $regfile = "m8def.dat" $crystal = 8000000 Config Portd.1 = Output Config Timer2 = Timer , Async = Off , Prescale = 64 Dim Licznik2 As Integer On Timer2 Tim2_int Enable Timer2 Enable Interrupts Timer2 = 6 Licznik2 = 0 Do...
"mongoł2000 napisał: a jak zrobić pwm na 6 kanałów bo jest jeszcze ock0?? Co to za wyjście bo nie znam?" jest to pierwszy pin procesora , zaraz przeinstaluje tego bascoma Dodano po 36 $regfile = "m162def.dat" 'Deklaracja rodzaju procesora Config Timer0 = Pwm , Prescale = 8 , Pwm = On , Compare Pwm = Clear Down Config Timer1 = Pwm , Pwm = 8 , Prescale...
Timer0 startuje natychmiast po skonfigurowaniu ? skoro nie ma polecenia enebled to jak startuje? Jak dla mnie If Timer1 = 1 Then Timer1 = 0 Enable Timer0 ... uruchomi timer0 w przerwaniu Timer0_int: Counter0 = Counter0 + 131 Więc rozumuje to jako: $crystal = 8000000 Config Timer0 = Timer , Prescale = 64 Wiec co 8us zwieksza 256 -131= 125 125*8us=1000us...
tak właśnie podejrzewałem że bascom nie lubi operacji z dokładnym czasem.Zmiana polecenia z Toggle na not nic nie zmienia.Pozostanie przy sprzętowej generacji.Mam tylko jeszcze jedno pytanie,bo fala którą generuje to będzie nośna dla pilota SIRC.I teraz przy włączaniu i wyłączaniu T1 raz zostaje stan wysoki ,a raz niski na PB1. Na razie załatwiłem to...
cos tkiego udało mi sie stworzyć... tylko jak teraz zrobić przełaczanie by po zmianie stanu portu pierwszy czas pozostał na LCD i zaczeło liczyć drugi czas aż do zmiany stanu portu. Sub Tmr1 Cls Dim Sek As Byte Config Timer1 = Timer , Prescale = 256 Enable Interrupts Enable Timer1 Timer1 = 32000 On Timer1 Czas: Start Timer1 Sek = 0 Locate 1 , 1...
Jak dla mnie to powinno być tak. Nie mam kompilatora pod rękom nie jestem pewien czy jest dobrze ale to mniej więcej to. Kod: $regfile = "m8def.dat" $crystal = 1000000 Config Portd = Input ' ustawiam we/wy Dim A As byte 'po co marnować pamięć A = 0 Config Timer0 = Timer , Prescale = 1024 Enable Timer0 Enable Interrupts Do If Pind.4 =...
Witam Potrzebuję zrobić zegar na ATMEGA8535 i nie mogę uruchomić pracy asynchronicznej. Kwarc zegarkowy podłączony do XTAL1/2. Program wstępny poniżej. Analogiczny program (ze zmianą ASSR.5 = 1) dla ATMEGA88 działa poprawnie. Proszę o pomoc. Pozdrawiam Jacek Program napisany w "BASCOM AVR" [syntax=basic4gl][/syntax] $regfile = "m8535.dat" $crystal =...
Witam. Chciałem w celach edukacyjnych zrobić częstotliwościomierz. Ponieważ nie mam za bardzo skąd wziąć zewnętrznych impulsów postanowiłem, że jeden pin procka będzie je generował, a przerwanie int0 będzie liczyć ile tych impulsów było. Do odmierzenia czasu posłużył timer1, który ma odliczyć sekundę (więc wynik od razu w Hz). Po upływie sekundy ma...
No nie, niestety. Mimo pomocy w kompilacji, program nie specjalnie działa. Przy ustawieniach jak wyżej podane znalazłem tylko jedną wartość Pwm_led(1) = 99, dla której serwo samo strobując zmienia pozycję z dowolnej na maksymalną. Dla prescale=1024 nie reaguje wcale. Ponieważ przy ustawieniach: [syntax=basic4gl] Ocr2a = 90 Ocr2b = 90 Tccr2a = &B10100011...
To jak skonfigurować PWM na Timer0 lub Timer2?? Może takie coś? : $regfile = "m16def.dat" 'Deklaracja rodzaju procesora Ddrd = B00110000 'Porty pełniące funkcję Timera powinny być skonfigurowane jako wyścia Tccr1a = &HA3 'Phase correct PWM mode ,PWM = 10 bit Tccr1b = &H5 'Prescale 1024 Do Pwm1a = Pwm1a + 1 'Ten program powoduje cykliczną zmianę...
Nawet po zmianie tych zmiennych zasięg spada do 1cm. Dodano po 15 Ze względu na brak wielu pasywnych części generator muszę wykonać na atmedze.
Zrobiłem tak zumek nic się nie dzieje. Generator działa cały czas.
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...
$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,na płytce testowej Config Lcd = 16 * 2 Config Timer1 = Counter , Edge = Falling , Noise Cancel = 1 , Prescale = 1 Config...
Ogarnełem CTC. Teraz nawet co 1s mam z wykorzystaniem ctc a program wygląda tak: [syntax=basic4gl]$regfile = "ATtiny24.DAT" ' specify the used micro $crystal = 8000000 ' used crystal frequency $hwstack = 32 ' default use 32 for the hardware stack $swstack = 32 'default use 10 for the SW stack $framesize = 32 'default use 40 for the frame space Config...
Mam taki timer ale jak przypisać żeby po odliczeniu czasu przekaźnik się wyłączył. [syntax=vbnet] $regfile = "m16adef.dat" $crystal = 8000000 'OSCYLATOR 8MHZ Config Lcd = 16 * 2 'KONFIGURACJA TYPU WYSWIETLACZA Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2 Config Pina.2 = Input 'S1 Config...
Jak się tak dokładnie przyjrzałem Twoim obliczeniom, to muszę stwierdzić, że nie rozumiesz istoty działania funkcji Load Timer :( Przykładzik: $regfile = "m8def.dat" $crystal = 4000000 Const Prescaler = 64 Const Interval = 1 / 1000 Const Reload_value = _xtal / Prescaler * Interval Config Timer2 = Timer , Prescale = Prescaler Load Timer2 ,...
Chyba znalazłem problem, powoli sobie zaczynam przypominać po latach, jednak analfabetyzm wsteczny zrobił swoje .Jestem na etapie nauki .Proszę o opinie czy dobrze kombinuję : mam kwarc 8Mhz pomiar robię na 8 kHz 8 000 000 / 8 = 1 000 000 /8 000 =125 Licznik zdąży zliczyć do 125 ? a chcę liczyć przesunięcie +- 90 st. więc lipa ? Może większy kwarc lub...
Niestety to nie pomogło, nie wiem czy to zrobiłem dobrze ale dodałem następujące elementy: [syntax=basic4gl] Config Timer0 = Timer , Prescale = 256 'konfiguracja timera0 On Timer0 Ontimerint 'wywołanie Ontimerint przy przerwaniu z timera Enable Interrupts Enable Timer0 Dim Count As Byte 'zmienne obsługi timera Timer0 = 6 'inicjalizacja timera Count...
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 =...
Witam Udało mi sie uzyskać w miarę płynną regulacje na podanym przezemnie wyżej schemacie PC817 zastoswałem gdyż był pod ręką a PC814 jeszcze nie dotarł Ale docelowo chciał bym zastosować ten drugi zmieniłem też program teraz procedura przerwania i timera wygląda następująco [syntax=vbnet] $regfile = "m32def.dat" $crystal = 16000000 $hwstack = 128 $swstack...
Witam!!! Co do zmiany fusów to polecam tryb tekstowy avrdude tylko trzeba sobie wyliczyć wartość a jakie komendy trzeba podać to polecam program polecony wcześniej. Jest tam okno prezentujące co trzeba przepisać. Do jednorazowej zmiany konfiguracji taki sposób jest OK natomiast na dłuższą metę jest uciążliwe, a co do programowania to proponuję utworzyć...
Witam ponownie. Do generacji przerwania, w czasie którego obliczana jest liczba pseudolosowa, wykorzystałem tym razem Timer1 - przerwanie wywoływane jest co około 0,5s. $regfile = "8535def.dat" $crystal = 8000000 $baud = 9600 Config Timer1 = Timer , Prescale = 64 Dim Losowa_waga As Integer On Timer1 Przerwanie_wagi Enable Interrupts : Enable Timer1...
Korzystam z legalnej wersji Bascom 2.0.4.0, która zresztą w pełni mnie zadowala i pokusiło mnie aby zobaczyć co tam się poprawiło w najnowszej wersji. Po ściągnięciu z MSC aktualizacji teoretycznie wszystko przebiegło bez problemu ale gdy... [syntax=basic4gl] $regfile "m168def.dat" $crystal = 16000000 $hwstack = 50 $swstack = 50 $framesize = 24 '---------------------------------------...
Witam ponownie. Panowie znajdźcie lepszy sposób na bicie postów. Niestety mój angielski jest za słaby żeby zrozumieć różnice, a i jestem zbyt zielony by bawić się z fusbitami (jeżeli taki jest mój problem). Trochę zmodyfikowałem mój kod i wszystko działa tak jak powinno, lecz nadal nie wiem czemu potrzebne są takie zmiany. Dim Mili As Byte Dim Mili1...
pomyślałem że wykorzystam 2 przerwania, złączyłęm razem int0 i int1. jedno bedzie wykrywac opadajace zbocze a drugie rosnące. efektem miał być ciąg licz np "345,12,345,32,463,12" gdzie kazda liczba oznaczałą by długość kolejnego impulsu otrzymywanego z czujnika. napisałem kod: $regfile = "m16def.dat" $crystal = 16000000 Config Lcdpin = Pin...
Witam buduje taką mini stacje pogodową i zatrzymałem się z obsługą ds-a co w tym może być nie tak ? W książce którą posiadam jest tylko obsluga 1820. Docelowo mają być 2 czujniki na 2 liniach. Zrobie to dublując kod . Jednak przy jednym nic nie działa wyświetlacz zostaje cały czarny bez czujnika , i z nim też . Oto kod: '###STACJA POGODOWA BY GEGE97##################################...
zmiana prescale bascom bascom zmiana prescale bascom prescale
zegar regulator kolejność instalować sterownik bc558 bc548
zelmer syrius przeczyścić styki
Zamienniki układu scalonego TDA7563BH w car audio Silnik spalinowy gaśnie przy dodaniu gazu - przyczyny i rozwiązania