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.
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...
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...
Dobra. 24C64 to 8KB, czyli już całkiem rozsądna pojemność. Wypróbuj ten szkielet programu, czy działa pilot jak należy, i poświęć chwile czasu na to by sprawdzić czy czas jest odmierzany tak jak należy. Nie za bardzo mogę to sprawdzić w symulacji programowej. Zanim zacznę robić coś więcej chcę mieć pewność, że kręgosłup programu jest OK. $regfile =...
Wewnętrzny oscylator jest niedokładny. A licznik możesz skalibrować zmieniając wartość w następującej linii kodu: Counter1 = Counter1 + 34286 oraz: Counter1 = 34286
...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...
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 =...
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...
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...
Już działa!!! ;) ,a przynajmniej osiągnąłem zamierzony efekt. [syntax=basic4gl]$regfile = "attiny2313.dat" 'wybór procesora attiny2313 $crystal = 8000000 Config Pinb.1 = Output 'buzzer mający piknąć 3 razy po odmierzeniu czasu nop Buzzer Alias Pinb.1 Dim Sekundy As Byte Dim Minuty As Byte Sekundy = 0 Minuty = 0 Buzzer = 1 Config Timer1 = Timer , Prescale...
$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...
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...
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...
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...
no jak się szybko pisze to tak jest, ale ważne że działa. Po 2 chciałem żeby jak najmniej ingerowac w program tegoż Pana. Mozna dać w przerwaniu od Timera żeby zwiększało sekundy, minuty i godziny. Tak sie powinno dać ale zrobiłem to na szybko. Mniej więcej tak by to wyglądało: $regfile = "attiny2313.dat" $crystal = 8000000 Config Pind.0 =...
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...
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...
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...
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...
Poszukuję wsadu do AtMega8 umożliwiającego stworzenie zegarka z datą na wyświetlaczu 2x16. Znalazłem kilka ale była też tam obsługa czujników temperatury (bądź pod wyświetlacz led), a ja odczytywać temperatury nie chcę. Czy któryś z forumowiczów dysponuje takim plikiem, lub potrafiłby zmienić ten, tak aby nie było obsługi czujników temperatury: '[syntax=basic4gl]Program...
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 jest dość początkującym w dziedzinie programowania i potrzeba mi połączyć tak aby na jednym wyświetlaczu pojawił sie zegar i licznik impulsów z halotrona jako obrotomierz zegar: $regfile = "m8def.dat" 'informuje kompilator o pliku 'dyrektyw mikrokontrolera $crystal = 8000000 'informuje kompilator 'o częstotliwości oscylatora 'taktującego...
Kod wygląda tak i nadal nie działa tak jak bym chciał.. Chcę żeby w 5 minucie zapaliła się dioda podłączona do PORTB.0, ma się tam pojawić stan wysoki więc podłączam diodę do masy i nic. [syntax=basic4gl]'Program zegara wykorzystującego przerwania od Timer1 'Przerwanie przepełnienia Timer1 jest generowane co 1 s '8 MHz/256/31250 = 1 s 'Przycisk S1 ustawia...
Witam Próbuje zrobić zegar z książki Marcina Wiązania "Programowanie mikro kontrolerów avr w języku Bascom" Przepisałem cały program z książki, podłączyłem według schematu http://obrazki.elektroda.pl/8287318100_1... , i niestety na lcd pojawiają się kwadraciki. Programator mam usbasp, i program mkAVRCalculator. W zakładce fusy uproszczone...
No to temat troszke ruszam, korzystam oczywiscie z kawalkow gotowych kodów co by nie klepac od nowa. W zwiazku z tym iz czekam dopiero na plytki w ktorych bedzie i RTC i podtrzymanie zasilania bawie sie na tym co mam , czyli atmega8 i zegar obsluguje na nim. '8 MHz/256/31250 = 1 s $regfile = "m8def.dat" $crystal = 8000000 Config Pinb.3 = Input...
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...
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ąć...
Dla czego zegar odlicza czas niedokładnie? co jest źle w tym kodzie? Którą wartość należy poprawić aby zegar liczył dokładnie $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...
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,...
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...
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 wszystkich Dopiero zacząłem przygodę z programowaniem i pojawił się problem Chciałem zrobić zegar na Atmega8. Przepisem program z książki (wiec domyślam się zę nie ma błędów) Zrobiłem prosty układ na płytce stykowej. Do Atmegi podpiąłem kwarc 8MHz dwa kondensatory po 27pF i i wyświetlacz LCD 2x16. Program ruszył od razu ale za wolno chodzi sekunda...
Witam, zlozylem sobie ten uklad, edytowalem program tak aby wpisac swoje numery tel. i nie moge uruchomic tego ukladu, narazie bazuje na pierwszej wersji programu od Xury'iego i jego schemacie, moze ktos mi powiedziec czy ten program powinien wystartowac? Rem Projekt powiadomienia o alarmie by Xury '$sim 'dla symulacji $regfile = "m8def.dat"...
Witam. Mam z książki Marcina Wiązani listing do zegarka na atmega8. Chciałbym włączyc jeszcze do tego projektu termometr ( możne być DS18B20 lub LM35). Jak to technicznie wykonać? listing zegara 'Program zegara wykorzystującego przerwania od Timer1 'Przerwanie przepełnienia Timer1 jest generowane co 1 s '8 MHz/256/31250 = 1 s 'Przycisk S1 ustawia minuty,...
Witam wszystkich! Pewnie pomyślicie "znowu to samo", no ale zlitujcie się w Wigilię i przeczytajcie te kilka zdań :D Walczę z problemem od kilku dni. Nie potrafię skonfigurować Timera by konwertował dane z 1wire poza główną pętlą. Nie mogę sobie pozwolić na waitms, bo wtedy mam problemy z poruszaniem się w menu. Mam już działający Timer1 odliczający...
Kolega janbernard ma rację już Ci pisałem wywal Goto pr z procedury: Pr_stop: A najlepiej to co jest w Pr_stop wpisz bezpośrednio do procedury obsługującej przerwanie i zmień jej nazwę Co_65ms bo będzie wywoływana co 65ms Gdybyś dał kwarc 6Mhz to wywołanie byłoby co 10ms (około) Napisałem Ci jak uniknąć wait, bo to niepotrzebne zatrzymywanie procesora...
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...
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, 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:...
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...
Walczę i walczę z tym programem ale nie daje rady.... :cry: Wrzucam cały kod, jest on zrobiony na bazie jak wspomniałem wcześniej: Projekt powiadomienia o alarmie by Xury wersja 2.0 [syntax=basic4gl] '***************************************... 'Projekt powiadomienia o alarmie by Xury wersja 2.0 'Działanie na przerwaniach...
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...
Ponizej cały kod żródłowy:) Proszę umieszczać kod w znacznikach syntax . Opcja Listing kodu .
Pierwsza część programu Dodano po 8 no i druga się nie mieści, więc wrzuciłem do pliku tekstowego.
wykonałem zegar na atmega8 lcg 1*16, z uzyciem timera1 dalem kwarc 8MHz, aby odliczać czas co 1s zrobilem tak Config Timer1=timer, prescale=256 następnie dałem counter1=counter1+34286 8MHz/256/(65536-34286)=1s - powinno mi dac dokładnie 1 sekundę a z pomiarów sekundnik zmienia sie mniej wiecej co 8 sekund, czy ma ktos moze pomysł dlaczeo tak sie dzieje?...
Witam Zastanawiam sie nad tym jak obliczyc blad zegaza ktory wykonalem na atmega8 miktokontroler jest taktowany rezonatorem 8 MHz sekunda jest odmierzana przez timer1, preskaler - 256 wartosc poczatkowa licznika 34286 .... 1sek: counter1=counter1+34286 incr sekundy set new if sekundy =60 then sekundy=0 incr minuty ' zezwolenie na wyswietlanie czasu...
W EDW z sierpnia 2000 prostego pomiaru częstotliwości dokonywano na wejściach T0 / T1 (timery / liczniki). Jako, że na moim PCB detekcja przejścia przez zero realizowana jest na INT1 (a nie na wejściach counterów), pomyślałem, że zamiast counter'a wykorzystam po prostu przerwanie na INT1, po wystąpieniu którego w obsłudze przerwania zmienna zostanie...
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...
counter1 bascom enable counter1 atmega counter1
układ synchroniczny wymiana bęben konica najtańszy sklep elektroniczny
tda440 wzmacniacz scania światła
Lokalizacja filtra oleju w skrzyni BVA AL4 Jak przywrócić MBR bez utraty danych? AOMEI, TestDisk, bootrec