Wydaje mi się, że kompilator nie ma problemu z funkcją "mod" (dlatego też dwie ostatnie cyfry się zgadzają), tylko przy dzieleniu zmiennej typu word, dającej zmienną typu byte jako wynik.
(at)airman, bój się Ty Boga... Weź na warsztat i przeanalizuj jeden z moich bardzo prostych programików to może nieco Ci się rozjaśni na temat przerwań, liczników, klawiszy, itp... : [url=http://www.elektroda.pl/rtvforum/to... na Attiny 13
Witam. W przerwaniu wpisałeś : Timer1 = 131 do zliczenia zostało 65536 - 131 = 65405 Przy wpisaniu do Timer0 tej samej wartości do zliczenia pozostaje : 256 - 131 = 125 impulsów. Myślę, że dobrze zrozumiałem Twój post.
Witam Musisz skonfigurować Timer i za jego pomocą odliczyć 4 minuty. $Crystal = 11059200 Config Timer1 = Timer, Prescale = 1024 Load Timer1 , 10800 On Timer1 Sekunda Config Pind.1 = Output : Wy Alias Portd.1 Config Pind.2 = Input : We Alias Portd.2 Dim Licznik_1 As Byte Dim Wsk As Bit Enable Timer1 Enable Interrupts Licznik_1=0 Wsk = 0 Do If...
Czyli szlifierka działa od punktu do punktu i kończy swoją pracę? Jeśli tak to jest to banalne do zrealizowania na amtedze czy nawet attiny.
Ok. Piszę i kompiluję w Bascom AVR, przy czym AVR studio umożliwia podłączenie zewnętrznego kompilatora w celu przesłania kodu po ISP do procka. Takie rozwiązanie zostało zaproponowane w instrukcji płtyki testowej od AVT. Powodem jest chyba brak obsługi Attiny2313 przez starsze wersje Bascom AVR. Także listing, który załączyłem jest w Bascom.
Spróbuj zrobić tak Co4ms: 'procedura obsługi przerwania od Timera T/C0 wykonywana co 4ms Timer0 = 6 'załaduj do Timera0, żeby zliczył 250 (=256-6) impulsów Incr Licznik If Licznik = 6 Then 'zmienna Licznik liczy do 6 aby Licznik = 0 'sprawdzanie stanu przycisku następowało If Pind.0 = 0 Then 'co ok.24ms If Pomoc = 1 Then 'jeśli zmienna Pomoc...
Wielopoziomowe menu to nie problem. 1) Masz główną pętlę do-loop. W niej piszesz 'menu główne' - korzystając z if-ów i jakiegos licznika który będziesz mógł zwiększać lub zmiejszać za pomocą przycisków góra/dół 2) Znając swój licznik, wiesz dokladnie która opcja menu jest wybrana, więc dopisujesz if-a - zeby skoczył do podprogramu który ma obsługiwać...
No toż pewnie, że możesz używać tzn odczytywać wartości z latającego licznika. Ale jeśli zaczynasz się już nim bawić w ten sposób, że chcesz go resetować w locie (czyli zapisywać), że chcesz zmieniać preskaler na inne wartości niż ustawiony został za pomocą polecenia ConfigRC5 (a został tylko ty tego nie widzisz) to nie dziw się, że potem coś ci nie...
Konfiguracja timera '51 jest inna : [syntax=basic4gl]Składnia: CONFIG TIMERx = COUNTER | TIMER , GATE = INTERNAL | EXTERNAL , MODE = 0 | 1 | 2 | 3 gdzie: x0 – TIMER0, 1 – TIMER1, Opis: TIMER0 i TIMER1 mogą pracować jako liczniki impulsów zewnętrznych gdy pierwszy parametr jest ustawiony jako COUNTER. Impulsy zliczane muszą być dostarczane...
' Na początku kodu Index_tab=0 ...... ...... If Licznik = 1200 Then IF Index_tab=3 Then ' przesuniecie w tył jeżeli pozyskano co najmniej 3 pomiary Pomiar(1)=Pomiar(2) Pomiar(2)=Pomiar(3) Else ' Fragment kodu wykonywany dla Index_tab=0,1 i 2 Incr Index_tab IF Index_tab>3 Then Index_tab=3 End If Pomiar(index_tab)...
[syntax=basic4gl] $crystal = 4000000 Config Portb = &B11111111 Portb = &B11111111 Config Portd = &B1111100 Portd = &B1111111 Config Timer0 = Timer , Prescale = 64 Enable Timer0 Enable Interrupts On Timer0 Co1ms Dim Liczba As Single Dim Ktorywysw As Bit Dim Lol As Byte Dim Jednostki As Byte Dim Dziesiatki As Byte Dim Pomoc As Bit Dim Aaa As Word Dim...
Zdefiniuj zmienną Temp jako Word. Jak ci ma wyświetlić 600 jesli zmiena Byte może przyjąc max wartość 255. Właśnie powyżej tej wartości będą ci sie wyświetlać dziwne rzeczy. No to może wytłumaczę jak to zrobić na zmiennej typu Byte według wyżej wspomnianej ideii. $crystal = 4000000 $regfile "attiny2313.dat" Dim Pomiar As Single Dim Temp As...
Jak już pisałem, dawno nic nie robiłem w bascomie, ale poniżej daję ogólny zarys opóźnienia dla przycisku przy użyciu licznika Config Timer0 = Timer , Prescale = 1024 Enable Interrupts On Timer0 , Czas Dim Flaga As Bit Main: Do If Pinx.x = 0 and Flaga = 0 Then Load Timer0 , 25 '0,0256s. dla 1MHz Enable Timer0 End If If Flaga = 1 Then Reset Flaga...
Parę zmian i z 117% zrobiło się 91% :), a można jeszcze niżej zejść. Mam nadzieje że byka nie zrobiłem :): [syntax=basic4gl]$regfile = "attiny2313.dat" $crystal = 8000000 ' dodano wielkości stosów i ramki ----------------- ' jeżeli będzie za mało ramu wartości można zmienić $hwstack = 40 $swstack = 16 $framesize = 32 '---------------------------------------...
GETRC5 używa licznika TIMER0. Albo TIMER2 jeśli go układ posiada i tak go skonfigurujesz w CONFIG RC5. Aby ustrzec się dziwnych błędów (z adresami linii poza programem) nie zapomnij o wpisaniu nazwy pinu w CONFIG RC5. Sam kod bazuje na dokumentach ATMELa: http://www.atmel.com/dyn/resources/prod_... I tam można całą procedurę prześledzić....
Można próbować konfigurować licznik TIMER0 jako PWM zgodnie z tym co napisałem w helpie :arrow: http://zbeegin.republika.pl/bashelp/s_co... Składnia przejdzie, ale nie wiadomo czy wszystko zostanie ustawione dokładnie tak jak chcesz. Jest już późno, więc nie napiszę testu i nie sprawdzę jak to rzeczywiście wygląda "od środka" dla Tinego2313....
Takie programy to się całe pisze w przerwaniu bez zbędnych kombinacji. Przy okazji można dodać funkcję płynnego przechodzenia pomiędzy jasnościami PWM żeby to jakiś bajer miało. Przycisk sprawdza się dwuetapowo, że został wciśnięty i że został puszczony. ale nie można tego robić za szybko bo zakłócenia wchodzą. Efekty świetlne trzymaj w DATA, tak łatwiej...
Musisz zaznaczyć cały tekst który chcesz pokazać jako kod, a następnie zaznaczyć napis Code $regfile = "attiny2313.dat" $crystal = 8000000 'kwarc 1MHz $prog &HFC , &HE4 , &H9F , &H00 ' generated. Take care that the chip supports all fuse bytes. Config Timer1 = Timer , Prescale = 64 'timer1 jako licznik 15536 Config Int0 = Rising 'detetor zera...
[quote="lukaskay"] a gdybym czas oczekiwania zwiększył do 15 s wtedy dokładność wzrosła by mi do 4 obr/min mogę użyć komendy: Wait 15 ?? ale wtedy chyba dojdzie do przepełnienia licznika?? quote] Przy twoich parametrach silnika el., oczywiscie ze dojdzie do przepelnienia licznika0. Ponadto uwazam ze stosowanie dyrektywy "Wait" w pomiarach nie jest najlepszym...
Najprościej będzie chyba zrobić programowego pwm-a, bo po pierwsze attiny nie ma 3 niezależnych kanałów pwm, a po drugie, jeśli wykorzystamy liczniki do pwm-a to będzie problem, żeby sterować zmianą kolorów np. co jakiś czas...
Witam, już wcześniej na podstawie tego fragmentu kodu, który podałeś mówiłem, że program ten wykorzystuje płynne sterowanie jasnością tylko ty tam wstawiłeś stałą o wartości 70. Mówiłem też, że skoro nie wiadomo jakie jest taktowanie procka to ciężko powiedzieć co z czego wynika. Ale teraz widać jak na dłoni potwierdzenie tego co pisałem, jest to typowe...
a nie piekielnie szybka liczarka monet :) No to rzeczywiście musiała by być piekielnie szybka, żeby być szybsza niż attiny dodający do dowolnej długości integera.
Bascom jeszcze nie obsługuje PWM w Timer0 z poziomu CONFIG. Trzeba skonfigurować "ręcznie" przez bezpośrednią modyfikację rejestrów sterujących licznika. :(
Z jaką znowu biblioteką? RC5SEND jest w kompilatorze jako code template a nie w bibliotece i zmienić się jej nie da. RC5SEND korzysta z 16-bitowego licznika TIMER1, którego to ATtiny45 nie posiada . Ma tylko dwa 8 bitowe liczniki. Rozwiązanie jest i to na forum MCS Electronics. Poszukaj!
Witam. Napisałem program do migania diodami i mam trzy pytania: 1.Czy da się ustawić cały port w stan spoczynku (coś w stylu PORTD = 0)? 2.Czy po każdej komendzie IF trzeba pisać END IF, czy da się to jakoś ominąć? 3.Czy poniższy kod jest poprawny, czy będzie działał? 1. Tak, możesz tak pozostawic. Bascom akceptuje kilka form ustawienia poziomu pinów...
. 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ś...
Nijak z żadnego kodu nie mogę się doczytać na chłopski rozum kiedy on mierzy czas od Rising do Rising. Nie używaj więc chłopskiego rozumu - użyj własny! Wyjaśnienie powinno być zbędne bo jest bardzo trywialne; - obracając wiatrakiem, w pewnym momencie wbudowany tam hall switch daje impuls na INT0, co wtedy robisz w programie? - odsyłasz go do etykiety...
Witam. Problem leży w obsłudze Timera1. W Bascomie Timer1 jest uważany jako 16 bitowy. Natomiast układ ATiny25 posiada liczniki 8 bitowe. A więc nie możesz użyć Timera1 a jedynie Timera0 ( 8-bitowy ) i odpowiednio zmodyfikować program.
Ciąg "Timer0" faktycznie nie zmienia koloru, ale jest to tylko błąd kosmetyczny. Po kompilacji nie ma żadnych błędów, zaktualizuj sobie program do jakiejś nowszej wersji. A jeśli będą jakieś problemy, to polecam ręczny wpis do rejestrów licznika, z takimi "rzadziej spotykanymi" prockami zwykle są jakieś kwiatki :)
Ale odpowiedzi dla nouki? W Bascomie można wstawić wartości do rejestrów, niekoniecznie w asemlerze. Ja to robiłem tak: Set Tccr1b.cs10 'start timer1 Else 'a jak nie Czas = Timer1 'odczytaj czas (liczbę zliczonych impulsów) z timer1 Reset Tccr1b.cs10 'zatrzymaj licznik Timer1 = 0 'wyzeruj licznik(żeby po następnej zmianie wyjścia komparatora mógł liczyć...
Witam muszę zaprogramować atmega8 tym kodem. Niestety on jest dla attiny. jak go konwertować do "*.bin" dla atmegi8 Jak mogę to wykonać? [syntax=basic4gl]$crystal = 4000000 $regfile "attiny2313.dat" ' Miernik prędkoci obrotowej 'licznikiem 0...65535 jest Timer1 Dim Wynik As Long Config Timer1 = Counter , Edge = Rising 'konfiguracja Timera do zliczania...
To nie jest żadna składnia Timera tylko lista zmiennych. Dim to skrót od Dimension. Pisząc Dim Zmienna As Byte opisujesz zmienną że będzie jednobajtowa i tak trzeba opisać każdą. Co do chwilowego wyłączania diody D1 to to dopisałem. Zadbałem też o poprawną polaryzację D3 przy naciskaniu. Niedobrze jest tak nie znać wszystkich założeń programu i potem...
Witam Chciałem zbudowac układ który liczył by 0-9 i wyświetlane to było na siedmiosegmentowym wyświetlaczu... .......... prosze o pomoc i o jakies proste wytłumaczenie moich błędów. myslalem jeszcze o robieniu tego za pomoca rozkazu INC i dodawania tylko nie wiem jak zawartośc rejestru wystawic na wyjscia z gory dziekuje za pomoc pozdrawiam Tu masz...
Pozostaje więc wykorzystanie sprzętowego spi lub i2c i dołożenie zewnętrznej pamięci eeprom o ile wewnętrzny jest zbyt mały Ma to sens. Taki 24c256 za 3 zł (32kB) warto zastosować dla układu z LCD gdzie będzie trzeba zrealizować dużo komunikatów. W ten sposób łatwo też przygotować wersję językową (jeden eeprom dla PL, drugi dla ENG i odwoływanie się...
Witam. Chciałem zrobić sobie podświetlenie deski rozdzielczej zmieniane w zależności od obrotów silnika. Teraz pytanie czy Attiny da radę ? I czy lepiej sczytać sygnał prędkości obrotowej silnika bezpośrednio z czujnika halla czy lepiej z tego co wychodzi do licznika z ECU (jednostki sterującej) ? Jeśli chodzi o język wolałbym w Bascomie - szybciej...
Poopuszczałeś trochę, a do tego literówki i dlatego wyrzucało błędy. Ten program kompiluje sie poprawnie. $regfile = "attiny2313.dat" $crystal = 11059200 $hwstack = 32 $swstack = 10 $framesize = 20 'DEKLARACJA ZMIENNYCH I PROCEDUR Dim Flaga As Bit , Flaga1 As Bit Dim Wylacz As Byte , Znak As Byte , Adres As Byte , Licznik As Byte Dim Znak1...
http://obrazki.elektroda.net/26_12016312... Poniższy licznik został początkowo stworzony do obsługi naświetlarki. Czas może być ustawiony w zakresie od 1 do 90 minut poprzez przyciski góra/dół. Przyciskiem on/off rozpoczyna odliczanie. naciśnięcie go ponownie powoduje przerwanie procesu w dowolnym momencie. Po przekroczeniu czasu odliczania urządzenie...
Hehe... no to następny pomysł - a jak szybko obraca się pętla główna programu? Nie wiem jak masz skonstruowany program, czy w ogóle jest? Dużej precyzji czasów chyba nie potrzeba, nie ma różnicy, moim zdaniem, czy przytrzyma się przycisk 1s czy 1,1s, więc może ten pomysł wsadzić do pętli głównej i bez przerwań. Wtedy w zależności od szybkości pętli...
Można trochę bajtów zaoszczędzić :) Dodaj bibliotekę obsługującą hardwarowe TWI: [syntax=basic4gl]$lib "I2C_TWI.LBX" ...... I2cinit Config Twi = 100000[/syntax] Odczyt danych z EEPROMU, zamiast: [syntax=basic4gl] Dim Mz1 As Byte Dim Gz1 As Byte Dim Mz2 As Byte Dim Gz2 As Byte Dim Mz3 As Byte Dim Gz3 As Byte Dim Mw1 As Byte Dim Gw1 As Byte Dim Mw2 As...
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ą...
Witam wszystkich wszech wiedzących. Mam taki drobny problem, otóż w zestawie uruchomieniowym zl11avt zaprogramowałem mikrokontroler attiny 2313 żeby na wyświetlaczach led był zegarek z budzikiem. Po zastanowieniu sie zobaczyłem że mam 4 porty wolne i mogę wykorzystać je do czego chce. Chciałbym żeby to był normalny zegarek ale gdy na PD2. (wolnym) pojawi...
Tak wczytanie do eeproma dzięki $eepromhex już działa poprawnie - dzięki. Ale dlaczego po próbie zapisu i odczytu zmiennej ( debounce dla pind.0 i 1) Układ się resetuje - tak mniemam bo licznik "ekran" nagle liczy od 0. Próbowałem wpisywać poprzez readeeprom i writeeeprom i to samo restart. Coś źle robię ? Pozdr. Rafał
Programator jak i kompilator BASCOM nie należy do szcztowych osiągnięć w tej dziedzinie. Ponieważ część programów i komend korzysta z tych samych peryferii np liczników itp wykorzystanie ich razem w bardziej złożonych aplikacjach kończy sie klapą . Programowanie ISP wymaga ustawienia pewnych parametrów i w wielu przypadkach działa tylko raz . Dla profesjonalnej...
Witam W prockach dopiero raczkuje. Robię obrotomierz do samochodu (choć można zastosować to wszedzie). Oparłem to na atmega16 bo taki akurat teraz mam, ale docelowo ma byc na 2312.Na razie jest wszystko w fazie testowej na biurku, ale założenia są takie: na kole zamachowym umieszczam siakiś czujnik, podaje to na układ formowania impulsu, z którego będę...
Witam! Mam attiny2313 i chcę wykorzystać sprzętowe PWM do sterowania urządzeniami podłączonymi na wyjścia OC0A, OC1A, OC1B. Urządzenia mają pracować w różnych momentach, kiedy trzeba ma być włączony PWM na 1,2 lub 3 wyjściach attiny. Z tego co zdążyłem się zorientować w attiny są 4 sprzętowe PWM, które można wykorzystać do tego celu (dwa oparte na 8-bitowym...
Witam Napisałem swój pierwszy program wiec proszę o wyrozumiałość … Attiny cyklicznie będzie odmierzał zadany czas i po upływie tego czasu załączał przekaźnik na 1 sek Będzie również zliczał ile razy przekaźnik został załączony i wyświetlał na wyświetlaczu : Zadany czas , ilość załączeń wyświetlacza , ile czasu już upłynęło od ostatniego załączenia....
Witam wszystkich Mam problem nad którym siedzę od wczoraj. Szukałem odpowiedzi na forach, w googlu i nie udało mi się znaleźć odpowiedzi. Otóż za nic nie mogę odebrać informacji w RC5 w przerwaniu INT1 w ATtiny2313. Co ciekawe, procek w przerwanie wchodzi, nie zacina się (sprawdziłem diodami i odpowiednio ustawiając porty) ale nie chce zdekodować rozkazu...
http://obrazki.elektroda.pl/8230612800_1... Przedstawiam dzisiaj prosty gadżet jaki zmajstrowałem jakiś czas temu. Jest to w zasadzie zwykły elektroniczny metronom i nie różniłby się od wielu podobnych tu prezentowanych gdyby nie sposób ustawiania czasu pikania. Założenia: 1.Wykorzystać stare diody led, które leżały w szafce około 15lat......
Chodzi o to, ze 13-stka jest mala i by mi bardziej pasowała. Mimo tego, że nie umiem jeszcze programować to wydaje mi się ze to takie jakieś niezbyt fajne kiedy potrzebujesz tylko 3 wyjścia z procka a używasz układu który ma ich 14...dlatego chciałem zastosować attiny13, ale pojawia się problem bo nie mogę zastosować procedury zwiększania licznika...
Racja. Do tego typu obliczeń są potrzebne większe procki. Wracając do tematu licznika. Stworzyłem już kod, który odlicza czas i zlicza naciśnięcia(maksymalne wychylenia). Nie mogę dojść do sposobu jakim mam obliczyć resztę. Nadal ufam,że jeszcze na ATtiny uda mi się to zrobić :) Wzór G = k * l/T^2 gdzie k tam stały współczynnik 39,44 l - długość, zakładam...
Witam. Na wstępie wspomnę że z problemem walczę już ponad tydzień i dopiero dziś uzbrojony w wiedzę i całą armię linków z internetu HC-05 . http://obrazki.elektroda.pl/8310644200_1... Moduł wydaje się być sprawny sprzętowo: - nawiązuje połączenie zarówno z BT w komputerze jak i z aplikacjami android (dioda zwalniai miga co 2 sekundy podwójnie)...
Witam Wszystkich Pisze kod do zegarka binarnego (zaczynam) jestem na etapie sekund. Licznik działa ale nie włącza poszczególnych diod led. Sterowanie diod jest za pomocą multipleksowania. Skupiłem się na razie tylko na wyświetlaniu sekund jak to ruszy to reszta pójdzie łatwo. Procesor attiny 2313 kwarc 20MHz Bascom. [syntax=basic4gl] $regfile = "attiny2313.dat"...
http://obrazki.elektroda.pl/6151182100_1... Witam wszystkich, zapewne większość forumowiczów ceni sobie prywatność, a może nawet ma młodsze rodzeństwo które niczym siostra Dextera sieje spustoszenie w jego wynalazkach i za nic ma wszelkie zakazy grzebania w nie swoich rzeczach. Tak właśnie zrodził się pomysł stworzenia prostego zabezpieczenia...
'$sim 'to jest programik do sterowania silniczkiem w obu kierunkach 'za pomocą sygnału do sterowania serwa w odbiorniku zdalnego sterowania. 'sygał odbierany przez wejście odwracające komparatora analogowego z progiem 1.1V 'Sterowniki do silników modeli samolotów,chociaż są lekkie, nie mają zwykle możliwości zmiany 'kierunku obrotów silnika.(I...
Zmontowałem układ mierzący temperaturę na ATtiny 2313, czujniku Ds18s20. Temperatura jest poprawnie wyświetlana na ekranie LCD, ale oprócz tego chciałbym rozszerzyć to aby układ po osiągnieciu pewnej temperatury np 26 st. zapalał diodę. podłączoną pod nóżkę B0. Docelowo zamiast led chciałbym wmontowac mały wentylatorek 5V 0,7W. czy tranzystor pnp BC516...
Dzięki, śmiga programik - kluczowanie PWM z częstotliwością ~31kHz a wyjście jest na pinie 14, jakby ktoś chciał wiedzieć: $regfile = "attiny2313.dat" $crystal = 8000000 $baud = 19200 Const Maxlen = 40 'Deklaracje stalych Dim Akey As Byte 'Deklaracje zmiennych Dim I As Byte Dim Cmd As String * 4 Dim Buffer As String * Maxlen Dim E As Eram...
Witam. Ostatnio zacząłem bawić się w obsługę RC5, ponieważ jest mi ona potrzebna w pewnym projekcie. Po uruchomieniu odbiornika na M8 przyszedł czas na nadajnik. Prowizoryczny był na M8 jednak docelowy miał być na attiny45, ale trochę zbyt późno dowiedziałem się, że Attiny nie posiada 16-bitowego timera1, a także Bascom nie potrafi skonfigurować jego...
Witam Mam taki problem przy wgraniu poniższego programu do attiny45 dioda zamiast świecić z odpowiednią jasnością miga z dużą częstotliwością. Dodam że ten sam program na attiny26 działa tak jak powinien czyli dioda świeci z odpowiednią jasnością bez widocznego dla oka mrugania. Oby dwóch przypadkach fusy przestawione na taktowanie wewnętrzne 8MHz....
Witam. Nie wiem jak w asemblerze wykonać przejście mikrokontrolera ATtiny2313 w trym oszczędzania energii, gdy brak będzie zasilania z sieci (praca na baterii). W bascomie po skonfigurowaniu PORTD.2 (INT0) jako wejście podciągnięte do + i podłączenia do niego +5V i rezystora do masy sprawę załatwiał poniższy fragment programu [syntax=vbnet]Do If Pind.2...
Witam, wykonałem taki prosty licznik na procesorku Attiny2313 program napisany w Bascomie, wyświetlacze ze wspólna anodą sterowane multipleksowo, jako czujnika użyłem krańcówki wszystko niby dobrze działa ale jest jednak jeden duży problem. A mianowicie, resetowanie się układu. Resetuje się(lub zawiesza) gdy do sieci przyłączam inny odbiornik lub przy...
http://obrazki.elektroda.net/89_12240033... W ramach sprawdzenia umiejętności programowania oraz ich praktycznego wykorzystania zbudowałem zegar oparty na mikrokontrolerze AVR ATtiny 2313. Układ wzbogaciłem dodatkowo o licznik CMOS4017 w celu zwolnienia dwóch dodatkowych pinów, ostateczny układ połączeń z portami mikrokontrolera wygląda tak:...
powiem szczerze ze nie mam dużego doświadczenia z mikrokontrolerami i obecnie nie dysponuję czasem aby się zagłębiać ale potrzebuję wykonać pewien sterownik i zastanawiam się czy jest to w ogóle możliwe. Zatem program miałby sterować silnikiem 230V, to akurat nie problem, chodzi o to że sterownik ma kontrolować pracę wyciągarki i praca ma się odbywać...
Witam Przepraszam za moją nieobecność. Odpowiadając na wasze pytania: Masz podłączony zewnętrzny rezonator? Zmieniałeś fusebity? Tak mam zewnętrzny rezonator 16MHz. Fuse przestawiałem, lecz nie wiem czy są poprawne. W każdym bądź razie poprzedni"program" który migał diodami działał poprawnie na tych ustawieniach i z tym rezonatorem. Z tym "po drugie"...
Kod skompilował się po dodaniu komendy Dim a as byte i wygląda to tak: [syntax=basic4gl]$crystal = 8000000 'Deklaracja częstotliwości kwarcu $regfile "attiny2313.dat" 'deklaracja modelu procesora Declare Sub Zwieksz 'Deklaracja procedury zwiększającej stan rejestru porównania Declare Sub Zmniejsz 'Deklaracja procedury zmniejszającej stan rejestru porównania...
w temacie zamiennik funkcji są moje wypociny... oto one #include<avr/io.h> int dane; #define OSC 4 // definicja funkcji opóźniającej void waitms(unsigned char x) { unsigned char a, b; // zmnienne licznikowe for( ; x > 0; --x) // ta pętla zostanie wykonana x-razy for(b = 10; b > 0; --b) // a ta 10 razy for(a...
Znam BASCOMa, chodziło mi o to ze dokładność takiego zegarka będzie znacznie mniejsza niż zegarka napisanego w ASM, czy zbudowanego w oparciu o RTC. W BASCOMie bardzo miło i łatwo się pisze, jednak nie wiemy przecież nigdy ile dana procedura dokładnie zajmuje. Oczywiście są sztuczki typu poprawki w liczniku ale uważam ze jest to przerost formy nad treścią...
Witam ! Jakiś czas temu chciałem wykonać projekt programu do generowania sinusoidy, otrzymałem taki kod od kolegi Michała SQ3LVJ. Program generuje częstotliwość słyszalną dla ucha, nie sprawdzałem czy to sinusoida. W kodzie nie ma żadnych komentarzy, szkoda ! Może ktoś pomoże mi i zakładającemu post Krzysztofowi SQ3FYK w poznaniu zasady pisania kodu,...
Witam. Jestem w trakcie przerabiania kursu "Mikroprocesorowej Oślej Łączki". Do przeprowadzania ćwiczeń używam płytki testowej AVT3500 z mikrokontrolerem ATTINY2313. Mam problem z dwoma programami, w których występuje polecenie LOOKUP. $crystal = 4000000 $regfile "attiny2313.dat" 'Licznik dekadowy z przyciskiem Config Portb = &B11111111 'wszystkie...
Oto kod programu: '************* Konfiguracja uC ***************** '***************************************... $regfile = "attiny2313.dat" $crystal = 16000000 Config Portb = &B11111111 : Portb = &B11111111 Config Portd = &B00000000 : Portd = &B11111111 Config Timer0 = Timer , Prescale = 8 Enable Timer0 : On...
Siemanko. Nie jestem, koledzy zagorzałym fanem Bascom, tylko go po prostu trochę znam. Zaopatrzony w lekturę zgłębiam teraz C i pomyślałem, że to będzie fajne ćwiczenie :D Napisałem to sobie w Bascom ekspresem i wygląda to tak https://filmy.elektroda.pl/65_1422227481... Nie chciałem takiego dużego okna tu wstawiać, ale zastosuje się do polecenia :P...
' D.CH.ELECTRONICS INC ' Program sterownika rolety licznikiem jest port EEDR Config Portb = &B11111100 ' ustawiam pind.7 i 6 jako wejści dla S1 i S2 Portb = &B11111111 ' stan spoczynkowy Dodano po 9 Tak wygląda kod źródłowy do tego układu. Układ steruje pracą silnika DC pracującego na napięciu 12V. Sterowanie odbywa się poprzez zmianę polaryzacji za...
1 obrót cylindra to 1 arkusz więc jeśli na osi umieścimy "podziałkę" z drukarki atramentowej HP (taki foliowy krążek z naswietloną podziałką) i element odczytujący (takze z tej drukarki) wtedy uzyskamy kilkaset impulsów na 1 obrót - czy wtedy bedzie łatwiej? np. 1 obrót = 500 impulsów 500 impulsów = 1 ark. 250 impulsów/sek = 0,5 ark/s =1800ark/h Zakres...
Przepraszam za pomyłkę. Chodziło mi o ustawienie tryby pracy jako timer a nie jako licznik(counter). Problem rozwiązałem przez zmienienie miejsca, w którym konfiguruję timer poza instrukcje if no i teraz wszystko działa. Nie mam pojęcia czemu jeśli konfiguruję timer przed intrukcją if timer nie działa tak jak powinien. Dziękuję za odpowiedź.
Ok ,po prostu inaczej zrozumiałem "na AMEN wstrzymujesz działanie pozostałych funkcji". Jeśli program ma robić coś jeszcze , poza pilnowaniem przycisku i diody to też zastosował bym rozwiązanie z TIMEREM lub zmienną odliczającą do X, ja nazywam to "licznikiem". A poza tym to: "dzięki temu m. in. zaczynam pożegnanie z bascomem" Chyba masz rację, zacznij...
Jak ustawić zliczanie z zewnętrznego kwarcu który ma 4Mhz? Ja wywnioskowałem, że chcesz zmienić nie zegar systemowy a jedynie zegar samych liczników- tak się nie da (no poza timer2). Jak zmienić już Ci piszę:) Program -> send to chip-> manual program Zakładka Lock and fusebits.
Przełączniki dołączone do pind.0/1 są na stałe podłączone do Vcc. Ale czy w momencie nie naciśnięcia przycisku, pin jest podpięty pod Vcc albo GND? Jeżeli nie jest do niczego podpięty, to może panować na nim stan nieustalony. Przy rozwartych przyciskach proponowałbym, aby do linii dołączone były wewnętrzne rezystory podciągające wymuszające stan wysoki....
Tak jak kolega Gieniek napisał: najpierw musisz odczytac "dolną" część rejestru po to by uzyskać dostęp do górnej. Instrukcje bascomowe potrafia odczytać cały rejestr lub dolną połowe, ale tylko górnej nie. Dla porównania jeśli wykonujesz jakiekolwiek operacje na liczbie większej niz 8bitowa, zawsze zaczynasz od najmniej znaczących bitów. Takie są uroki...
Sygnał z czujnika to sygnał z hallotronu, który odbiera sygnał co 1/6 obwodu koła (czyli 0.25m). Reszta przedstawia program. Jeżeli faktycznie masz hallotron a nie kontaktron (Reed SW) to masz z niego 'czysty' cyfrowy sygnał, który możesz podać bezpośrednio na wejście z dowolnym interruptem (INT0 lub (INT1). Wystarczy odpowiednio skonfigurować Timer0...
Bo po prostu Waitus nie może być ze zmienną. Waitus jest realizowane nie jako zwykła pętla z licznikiem, tylko jako jako stała pętla obliczona specjalnie pod dane opóźnienie (bo czas wykonywania samej pętli jest znaczy w stosunku do czasu wykonania nopów w środku pętli). Stąd niemożliwość regulowania czasu za pomocą zmiennej.
r"]Idę w jakimś kierunku ....... ? Niezupełnie, nie najlepsza ta droga..... Po pierwsze: wybór processora i parametrów. -Attiny13; praktycznie nie masz możliwości taktowania go 10 Mhz. Masz do wyboru: 1.2, 4.8, 9.6 Mhz. albo też 'zasilić' go (CLK1) z gotowego (zewnętrznego) źróła zegarowego co nie ma w zasadzie ekonomicznego sensu. Jego timer0 z przyjętym...
Mam programator STK200 (własnej produkcji) i o ile nie miałem z nim nigdy problemu przy programowaniu 90S2313 o tyle z Tiny2313 mam problemy. Program pisany był w Bascomie AVR i tym programem kompilowałem i wgrywałem mój program. Oczywiście ustawiałem układ Tiny2313 i nawet zmieniałem mu fuse bits, aby nie chodził na wewnętrznym oscylatorze. Mimo to...
Witam! Nie mogę pozbyć się problemu żarzenia diodek w matrycy led. Przesówam na matrycy jakiś tekst w lewo, na kolumnie poprzedzającą aktywną kloumne, zaczynają się żarzyć te diody które świecą na aktywnej kolumnie. Co daje taki bardzo głupi efekt smużenia do przodu:cry: Kod programu opieram w większości o kod z książki Pana Marcina Wiązania. Zakładma...
Nie można poprosic uC, żeby w tym czasie zajął się czymś niepotrzebnym (czym?) ale równie obciążającym? Procesor nie wie co jest potrzebne - robi co mu programista nakazał kodem programu (czasem nieświadom co nakazał :-)). Po drodze od programisty do kodu maszynowego (czyli tego co wykonuje procesor) jest jeszcze kompilator i miewa wbudowane opcje...
A jakichś deklaracji zmiennych w tym Bascomie nie potrzeba ? Co to jest to Eedr ?
Witam. Potrzebuję wykonać układ licznika obrotów wału silnika (poglądowy rysunek http://obrazki.elektroda.net/56_12518220... ) . Licznik musi zliczać obroty do przodu i do tyłu. O ile z samym liczeniem w jedną stronę i wyświetleniem wyniku nie mam problemu, o tyle nie wiem jak wykonać sekwencję zmiany kierunku liczenia. Domyślam się że trzeba to...
Witam serdecznie! W tym dziale piszę do Was koledzy po raz pierwszy. W programowaniu procków raczej nie siedzę( bawiłem się kiedyś w bascomie kilka razy). Mam teraz do wykonania następujący układ. Podajemy impuls startu na nózkę procka załączając urządzenie (przerzutnik RS) zadajemy x liczbę impulsów podawanych na drugą nózkę (timer0 lub przerwania)...
Witam Kiedyś kupiłem zestaw nord elektronik ne2008 (licznik impulsów) na procku 2051 ja włozylem tam avr 2313 i odpowiednią przerobką. problem polega na tym że nie potrafię wysterowac tranzystora pnp który steruje wyświetlaczen 7seg , bez znaczenia jakiej komendy uzyje do ustawienia pinu w stan niski (bascom avr). Jeśli w to miejsce wlutuje npn i odpowiednio...
Witam czy ktoś mi zmodernizuje ten program tak aby liczył mi same impulsy i je aktualizował na bieżąco a po przekroczeniu liczby 999 się resetował i liczył od nowa $crystal = 4000000 $regfile "attiny2313.dat" Dim Wynik As Long Config Timer1 = Counter , Edge = Rising Cls : Lcd "Obrotomierz" : Wait 1 Do Timer1 = 0 Start Timer1...
Witam serdecznie, W ramach wolnego czasu zająłem się tak z ciekawości programowaniem w BASCOM'ie. Niespiesznie pogłębiam swoją wiedzę, i sądząc, że z pomocą różnych kursów lub tez kodów dostępnych w necie uda mi się zrobić termometr na DS18B20 to byłem w błędzie. Spokojnie na płytce uniwersalnej podłączyłem LCD 16*2, oscylator 8 MHz no i DS'a. Postanowiłem...
Dziękuje :). Taki był cel bo żeby było prosto bo miałem na to tylko 2 kB pamięci . I ładnie. Chciałem zobaczyć bo wiem, że nie jest łatwo w języku wysokiego poziomu wetknąć w attiny2313 obsługę wyświetlacza, komunikaty i coś co jeszcze coś robi. Swoją droga musiałem wyprostować twój kod żeby ogarnąć ... Ech te wcięcia ... [syntax=vbnet] '***************************************...
O ile kojarzę, to pamięć RAM nie jest czyszczona podczas resetu, więc zegarek conajwyżej odrobinkę się spóźni. Oczywiście to pod warunkiem, że na początku programu zmienne nie będą czyszczone. Gorzej jak reset wystąpi w momencie gdy jeden z liczników został zmieniony (np. minuty) a drugi jeszcze nie. Co do zjawiska przypadkowych resetów mam takie samo...
http://obrazki.elektroda.pl/2534599000_1... Zegar + termometr DS18B20 - ATtiny 2313 - LED Wykonany na ATtiny 2313. Znane podobne zegary oparto na Atmega 8 i LCD. Program napisany w Bascom. Pracuje bez zarzutu. http://obrazki.elektroda.pl/9466031800_1... http://obrazki.elektroda.pl/4401807600_1... http://obrazki.elektroda.pl/5327081100_1...
Jezeli programujesz w Bascomie to wiem gdzie moze byc przyczyna- mialem to kiedys tez z pomiarem czestotliwosci z ne555. Zwroc uwage na zmienna ktora przechowuje wartosc z licznika. Przed jej analiza i zamiana na hz najlepij skopiowac ja do innej zmiennej i na tej drugiej robic obliczenia. Podeslij listing programu do rzuce na niego okiem
Witam Używam Attiny2313 do pomiaru dwóch temperatur z DS18B20. Wynik ( Integer ) przesyłam bez żadnej obróbki przez UART przewodem 40 cm do Atmega328. Atmega rozbija odebrane dane i jest obróbka Kod Attiny2313 $regfile = "attiny2313.dat" $crystal = 8000000 $baud = 4800 '********************* Konfiguracja magistrali 1-Wire Config 1wire = Portd.5...
Udało mi się zrobić coś takiego: [syntax=basic4gl] $regfile = "attiny2313.dat" $crystal = 14318000 Config Timer0 = Timer , Prescale = 1 ' Enable Timer0 : On Timer0 Prztimer0 Enable Interrupts Config Portb = &B00111111 Portb = &B00000000 Config Portd = &B1111111 Portd = &B0000000 Dim Licznik As Byte Dim Index As Byte Dim Czekaj(12) As...
O bascomie wiem tyle że to język programowania, dużo nie pomogę. Nigdy nie robiłem takiego układu, ale powiem jak ja bym to zrobił. Po pierwsze konfigurujesz timer tak że będziesz miał przerwanie co 10kHz (50Hz z sieci *2 *100 krok). Timer synchronizujesz siecią energetyczną, czyli zerujesz go za każdym razem jak wykryjesz zero. W tym zerze też chyba...
Oczywiście mam przypisane wartości początkowe do zmiennych. Oto kod:
Witam. Mam następujący problem, który wyskoczył mi podczas zabawy z bascomem. Zadałem sobie pewne zadanie (związane z robotem-samochodzikiem na którego przodzie umieszczona jest krańcówka dająca stan 1 na jeden z portów) którego opis jest następujący: Ustawiamy robota w punkcie A. Pojazd dostaje komendę "start" i włącza się licznik zliczający czas....
Witam . Od dłuższego czasu walczę z obsłużeniem licznika impulsów w ww procesorze . Otóż sprawa wygląda następująco . Mam sobie układ taktowany częstotliwością 4 Mhz z kwarcu zewnętrznego . Na pind.5 (t1) przychodzi sobie sygnał prostokątny o częstotliwości 1 Mhz . Jest on podawany przez pewien okres czasu a ja mam zliczyć jego ile było okresów tego...
licznik attiny bascom attiny kwarc generator bascom attiny
pomiar prądu pomiar pradu płyta gazowa bezpiecznik tda2030a zasilanie
Radio JVC RA-431B nie zapisuje stacji - przyczyny i rozwiązania Obciążalność kabla miedzianego 4x185 mm²: moc i warunki