[syntax=c]#include <avr/io.h> // Biblioteka wejść/wyjść #include <avr/interrupt.h> // Biblioteka przerwań #include <rc5.h> // Biblioteka ustawień RC5 #include <avr/eeprom.h> // Biblioteka pamięci EEPROM /////////////////////////////...
Warto by było tą konfigurację rozwinąć o jeszcze jedną linię (odświeżaną za każdym razem po wywołaniu przerwania): [syntax=basic4gl] Timer0= x 'lub Timer0=Timer0 + x 'opcja dokładniejsza [/syntax] gdzie x=256-licznik, "licznik" dobierasz w zależności od tego jak gęsto ma...
Witam Czy moze mi ktoś powiedzieć jak w poniższym programie do pamieci eeprom wew do komórki o adresie 1 jest wpisywana długość (adres ostatniej danej data)? Ściślej skąd pod adresem 1 bieże sie ilość danych data? Readeeprom Dlugosc , 1 'odczytuje adres końca napisu Pozdrawiam Pawli 'C019...
Witam. Co do czujnika wykrywającego obrót koła, to dokładnie tak trzeba to zrobić, że dać magnes przymocowany do szprychy, a do widelca kontaktron, to jest oczywiste. Moja wcześniejsza wypowiedź odnośnie tego czujnika, wynikała właśnie z usytuowania magnesu i kontaktronu w twojej propozycji....
Microchip, po zakupieniu Atmela, utrzymuje nadal projekty, jakie realizowała ta firma przed przejęciem. Wypuszczane są kolejne układy z rodzin AVR (tinyAVR i megaAVR) jak i 32-bitowe mikrokontrolery z rdzeniem ARM-Cortex. Do układów tych dodawane są nowe rozwiązania, czego przykładem może...
Tiny 13 nie ma sprzętowego uarta ,więc programowy uart zawsze będzie blokował wykonywanie pętli głównej programu . Jego obsługę musi wykonać mikrokontroler tak jak program. Żeby to mogło działać to trzeba użyć przerwań i timera do obsługi uarta programowego a w czasie gdy ten liczy...
Witajcie moi drodzy W tym temacie poznamy podstawy przerwań i timerów w PIC18F2550 . Na początek będzie krótki wstęp teoretyczny, a potem wszystko przerobimy dokładnie na praktycznych przykładach. Do lektury tematu przyda się ogólna wiedza na temat przerwań i programowania w C,...
Witam, Próbuję uruchomić zegarek na procku ATtiny2313. Problem w tym że zegarek (stoper) działa za wolno - nie chodzi tu o precyzyjne odmierzanie czasu ale dziesiątki sekund zmieniają sie z prędkością sekund. Program jest z mikroprocesorowej oślej łączki z edw. Tam użyty był at90s2313,...
W c ten program gdzies w internecie widziałem.. Bedzie wymagał być moze małego dostosowania. Mam go ale niestety w asm pod atmege 16. ; Programowalny pilot RC5, obsługa interfejsów optycznych i pamięci EEPROM ; Rafał Baranowski (C) 2004 .INCLUDE "m16def.inc" ;...
Po co pamięć na i2c? Tinny13 ma 64 bajty wewnętrznego eepromu, powinno starczyć do zapisania sekwencji. Pseudolosowo też może być, trzeba ustalić tylko jakieś reguły np. częstość, albo maksymalna wielkość zmian. a co do pinów to raczej wyjście na pinie 5 albo 6, bo tam są wyjścia sprzętowego...
Witam, miałem na zaliczenie zrobić jakiś projekt z wykorzystaniem mikrokontrolera AVR, jako ze miałem tak mało czasu jak doświadczenia to zrobiłem działający projekt ze strony '************* Konfiguracja uC ***************** '********************... =...
Witam, Wcale lub na minus. Wszystko zależy od wybranego przetwornika i rozdzielczości. Gdy np. ośmiobitowy przetwornik będzie umiał zgłosić koniec konwersji pracując w trybie auto, to po prostu obliczenia zamiast w przerwaniu ADC trzeba będzie umieścić w przerwaniu np. INT0 lub INT1. Ilość...
Problem nie jest mały. Musisz poczytać o przerwaniach i Timerach. W helpie po polsku napisanym przez Zbigeen i umieszczonym na stronie Bascoma. I zapomnieć na jakiś czas o wait. Bo w takim "liniowym" programie bez przerwań to tego się nie da zrobić.
Witam wszystkich :D Zanim zalozylem ten temat b. duzo szukalem tego co potrzebuje i wiem ze bylo juz pisane na ten temat ale nie znalazlem nic konkretnego wiec pisze . A chodzi mi o to ze potrzebuje napisac program w bascom do attiny 2313 ktory mial by utrzymywac procka w trybie uspienia a gdy wcisne...
Mimo że port ma 7 wyprowadzeń to zawsze ustawiaj 8 bitów, bo to wciąż port 8-bitowy tylko że z obciętymi nóżkami. Regulację szybkości robi sie łatwo. Dodajesz jakąś zmienną np LICZ i teraz co każde wejście do przerwania timera to zwiększasz tą zmienną o 1. Teraz porównujesz ją...
O co mi dokładnie chodzi: W helpie Bascom jest napisane, że w przypadku kości 8535 mam do dyspozycji preskalery 1, 8, 32, 64, 128, 256, 1024, a dla kości M103 1, 8, 32, 64, 256, 1024. Ja zaś posiadam kość M32 i w PDF, który dotyczy tego mikrokontrolera jest tabelka na 127 stronie,...
Witam serdecznie jako że jestem zielony w temacie programowania Mikro kontrolerów prosze was o pomoc w przerobieniu programu lub jakichś podpowiedziach jak sie za to zabrac. Chciał bym by lampka świeciła w płynnie zmieniających się, losowo ustalonych kolorach od razu po włączeniu zasilania. wiem...
W ATMEGA808 (zapewne w innych nowych też występujący) wychwyciłem błąd związany z zachowaniem się RTC po wybudzeniu z uśpienia STANDBY. Mam kod, który w przerwaniu od pinu odczytuje zawartość RTC_CNT. RTC oczywiście ustawiony w trybie RUNSTDBY. Odczyt CNT odbywa się zaraz na początku obsługi...
Witam! Ze względu na niedokładność funkcji waitms(); postanowiłem uruchomić licznik TC1 w ATTINY2313. Ma to być obsługa pilota (prawdopodobnie JVC). Więcej danych: - ATTINY pracuje z częstotliwością 1MHz (wewnętrzny oscylator) - TC0 jest już zajęty innymi działaniami (w czasie obsługi...
Żaden mikroprocesor nie może robić wszystkiego jednocześnie. Musisz nadać pewne priorytety wynikające z częstości zdażeń i potrzebnej szybkości reakcji. Proponował bym te zadania podzielić na różne rodzaje przerwań aby do ich obsługi zaangażować właśnie przerwania to pozwoli Ci w...
Witam, zaprogramowałem Attiny 2313 w bascomie tak aby co sekundę gasła i zaświecała się dioda led podpięta do PORTD.6. Ustawiłem obsługę przerwań, konfigurację TIMERA1 podzieliłem go przez 64. Oscylator procesora jest ustawiony w FUSEBITS na wewnętrzny 4Mhz ( 100010:int. RC Osc. 4 Mhz;...
Wymieniłem uP na inny ATTiny 2313 i ruszyło. Może kość była uszkodzona. Spróbowałem jeszcze ustawić przerwanie na overflow i też bez ustawionego CKDIV8 nie odpalało. Teraz, przy 8Mhz i bez załączonego dzielnika częstotliwości na liczniku silniczek chodzi. Dzięki za zainteresowanie
Kolejne pytanie z serii jak to jest i co radzicie ;)... Mam ATTiny 2313 i chce je podłączyć do USB - obsługa softowa za pomocą V-USB. Na domyślnym schemacie mam pin Data+ podłączony do zewnętrznego przerwania INT0, które ma priorytet przed INT1. Co się stanie jeżeli w momencie komunikacji...
Witam wszystkich. Przedstawiam swój kolejny projekt, tym razem jest to oświetlenie pod szafkami kuchennymi. Nie jest on zrobiony od zera, powstał na bazie wcześniejszego mojego projektu, oświetlenia schodów który można zobaczyć tu: oraz na elektrodzie: Płytka i schemat zostały...
ENABLE INTERRUPTS 'Włączenie globalne przerwań ENABLE INT0 'Właczenie przerwania INT0 ON INT0 podprogram: 'Przypisanie podprogramu który zostanie wywołany po stwierdzeniu przerwania. "Only an level interrupt on INT0...". Wypadałoby jeszcze ustawić przerwanie aktywne na poziom a nie na zbocze....
Dwa układy działające z pilota w kodzie rc5 . Attiny 2313 jako odbiornik i nadajnik . Układ ma odebrać dane z pilota i to samo wysłać . Po za tam ma wykonać pozostałe rozkazy. To działa bez problemu . Z helpa Bascom wyczytałem ze wysyłanie RC5 jest na PORTB.3 . W moim kodzie nie dział...
Po dolutowaniu rezonatora 4MHz z dwoma kondensatorami 22 pF. Program napisany w Bascom-ie.
Atmega 328P z kwarcem 18432000 (w specyfikacji mozna ja kręcić do 20MHz) spokojnie potrafi wygenerować trzy PWM przesunięte w fazie o 120 stopni z krokiem 256 z częstotliwością 50Hz przy tym nadając na USART o aktualnych warunkach jednego potencjometru. Pewnie że potrafi, ja na attiny 861...
maciejbilu --> powiem więc ci inaczej - trzeba to całkowicie inaczej napisać i zapewniam cię że nie trzeba wykorzystywać Bitwait. Poczytaj sobie nawet na elektrodzie o wykorzystywaniu tzw FLAG w przerwaniach - to może coś ci się rozjaśni - bo na razie to niestety brniesz w ślepy zaułek...
Witam serdecznie! Od niedawna uczę się programowania uC w C i postawiłem sobie za zadanie obsłużenie przerwania INT0. Obsługa ma polegać na zapaleniu diody po naciśnięciu guzika podłączonego do INT0 i jej zgaszeniu po puszczeniu guzika. Poczytałem trochę forum i znalazłem GIMSK |=...
pier - twój program działa bardzo dobrze, dokładnie tak jak go napisałeś. A że napisałeś go badziewnie to taki masz efekt. Błędy: 1) W przerwaniu INT0 wyskakujesz z niego GOTO do głównego programu, tak nie można. Wyjdź z przerwania komendą RETURN, ale na jego końcu a nie przez podmianę...
Komentujemy to, że używasz przestarzałego kompilatora i środowiska. Po prostu zainstaluj coś co ma mniej lat niż moje dzieci :). Skąd takie coś żeś wytrzasnął? Koledzy piotrva i Piotrus_999, ja was proszę, przeczytajcie pierwszy post w temacie, ale ZE ZROZUMIENIEM, zanim klikniecie...
Ach Chorwat.....cały czas jest tak samo... próbowałem ręcznie podciągać i ustawiać wartość pin'u przerwania na 1 i na 0, nawet zmieniłem przerwanie na Int0... myślę, że po prostu Bascom albo Attiny tu wysiada :cry:; chyba czas sie przesiąść na C albo Asm'a...oj będzie ciężko. Pomimo...
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...
Wejście i wyjście z obsługi przerwania - to kilkanaście cykli (dokładne dane w dokumentacji). Do tego trzeba dorzucić sekwencję push i pop w prologu i epilogu procedury, zależną od liczby rejestrów potrzebnych w samej obsłudze programowej. Plus sama "treść" obsługi. Intuicja podpowiada,...
Przede wszyskim sprecyzuj jakie sygnały chcesz badać - częstotliwość i szerokość badanych impulsów (granice). Od tego zależy czy wybrana metoda jest dobra. Po drugie sprecyzuj co chcesz badać - mierzysz szerokość impulsów, czy interesuje cię różna reakcja na zbocza? Wśród AVR masz...
Witam. Jestem początkujący w programowaniu więc proszę o wyrozumiałość. Potrzebuje program sterowania klapą (otwieranie i zamykanie dwie krańcówki góra dół i silnik lewo prawo). Chce aby jazda w gore lub w dol odbywała się w momencie zmiany stanu pewnej zmiennej zewnętrznej konkretnie...
przyzwyczajony do uC pokroju atmeg8 A jaka jest róznica w tym? Czy to atmega czy attiny dziala tak samo ale wyczyszczenie flagi tak? Po to jest
Witam. Robię projekt do sterowania fazowego i potrzebują układ do detekcji zera, a dokładniej kod. Układ składa się z transoptora z podwójną antyrównoległą diodą. Wiec program musi robić przerwanie kiedy stan na pinie przechodzi z niskiego na wysoki. (faza przechodzi przez zero, więc...
Myślę, że zdążysz. Wystarczy że wszystkie 4 piny podłączysz pod jeden port. Np. PORTB : PB0, PB1, PB2, PB3. Wtedy wystarczy że w przerwaniu odczytasz tylko stan całego portu B (PINB), zaś w programie głównym zbadasz który z wentylatorów wygenerował przerwanie.
masz coś takiego: rs_tx_przerwanie: ;przerwanie po wyslaniu bajtu po rs'ie rs_tx_00: cli ;wylacz przerwania in r1,sreg ;zachowanie rejestru systemowego, glownie porownan lds r24,(rs_tx_licznik) lds r25,(rs_tx_ograniczenie) cp r24,r25 ;porownaj zmienne ...
Możesz w Bascomie załatwić wszystko na samych rejestrach, skoro polecenie Getadc się "gubi": ADMUX=b11010000 ' Vref =2.56 z zewnetrznym kondensatorem, pomiar dla ADC0 ADCSRA=b11000111 'włączony ADC i uruchomiona konwersja, wyłączone przerwania, preskaler na 128 teraz czekasz np 100ms...
Witam ponownie. Ten błąd z pętlą to sam zauważyłem... i poprawiłem oczywiście. Jednak to nic nie dało. ...procesor idzie spać w przerwaniu , a w takim przypadku WSZYSTKIE przerwania są wyłączone... Spróbowałem temu zaradzić w taki sposób: Down: Waitms 80 If Pind.3...
AT90S2313 to starszy brat ATtiny2313. Ten drugi ma większe możliwości, co ważne ma już wbudowany wewn. oscylator dzięki czemu nie zawsze trzeba stosować rezonator kwarcowy (nawet przy transmisji RS232). Oczywiście, że można go programować za pomocą PonyProg'a - tylko zassij sobie najnowszą...
przerwanie zewnętrzne Int1 jest na pinie PD3. Ale nie bardzo rozumiem z tym kierunek . To ma być jako dodatkowa sekwencja?? Tylko pod 2 przyciskiem?? Chodzi Ci o coś podobnego jak kierunkowskaz zrobiony?? No mniej więcej tak to będzie wyglądać: $regfile = "attiny2313.dat" $crystal...
Ale dlaczego chcesz wykorzystywać końcówkę przerwania zewnętrznego jako wyjście? Przecież logiczne jest, że ma to być wejście, chyba że chcesz generować przerwanie programowo, ręcznie ustawiając stan końcówki, co w praktyce raczej mija się z celem. Końcówkę deklarujesz jako wejście...
Mam problem z poprawnym ustawieniem rejestrów w ATTiny2313. Chciałbym wygenerować na wyjściu pinów OC0A i OC0B sygnały w takiej postaci: Rejestry ustawiam tak: TCCR0A=(1<<COM0A1)|(1&...
Słyszałem o przerwaniach, ale trzeba by brać poprawkę na czas potrzebny do obsługi przerwania.Zauważ ze z każdą inkrementacją sekundy błąd stale rośnie. Kiedyś napisałem zegarek w BASCOMie właśnie z użyciem przerwań i po kilku tygodniach widać było wyraźne odchylenia, natomiast...
Z dużym prawdopodobieństwem program "idzie w buraki". Pomińmy zapis i odczyt nieistniejących lokalizacji w pamięci ram - powiedzmy, że nic się wtedy nie stanie. Ale za to w pewnym momencie procedura zapisująca pomiary do tablicy nadpisze dane przechowywane na stosie (np. adres powrotu z funkcji/przerwania)....
Witam ponownie ! Kiedyś gdzieś czytałem że projekt z Bascoma 8051 można przenieść do Bascoma AVR i wjakiś sposób automatyczny przerobić listing pod AVR (ATtiny2313) Pozdrawiam. Stefan Ps. Jeśli będziesz miał problem a nie "pali się" to popróbuję ten listing przerobić na ATtiny2313. Już...
Witam, proponuję przede wszystkim zrobić odbieranie kodów z pilota na przerwaniach: najpierw deklaracja na początku: On Int1 Int1_rc5 ' obsługa odbioru kodów z pilota Getrc5 Config Int1 = Low Level ' wyzwalanie przerwania niskim poziomem Enable Int1 czyli...
Czyżby ta etykieta jest wykonywania podczas przerwania?
Tych wartości nie ustala się eksperymentalnie. Nawet podałem na forum przepis co i jak... Szukać! $HWSTACK = 32 - jak nie używasz przerwań to możesz zmniejszyć nawet dwukrotnie. Pamiętaj tylko by nie używać zbyt dużo zagnieżdżonych odwołań GOSUB. $SWSTACK = 18 - jak nie ma poleceń...
w nadajniku daj print cos ; chr(13) ' znak enter a w odbiorniku odbieraj w przerwaniach od usart'u
A jakie zastosujesz czujniki do pomiaru tych prędkości? Podejrzewam że te obrotomierze wykorzystywały przerwania tylko na INT0 i INT1 a nie na PCINT7...0. str.62 dokumentacji.
Albo podpiąć pod INTx i wyzwalać przerwanie zboczem
To nie bedzie dzialac. Poczytaj jak dziala multipleksowanie i sie zastanow nad tym. Czasem bedzie sie swiecic wiecej diod, sprawdz jaka maja wydajnosc pin avr'a i co moze sie stac z portem. Nastepna sprawa, nie wiem jak maja dzialac te przyciski. Dalej, gdzie kwarc? Jak zrobisz to na wewnetrznym to...
Jak nie masz ADC w kontrolerze to pozostaje ci tylko pomierzyć czas trwania ładowania kondensatora przez mierzoną rezystancję. Jak wspomniał mój przedmówca, ważne aby sterować małym prądem . Zatem podłączasz kondensator pod wejście komparatora. Drugie wejście komparatora ma mieć napięcie...
Ja też miałem takie cyrki z przerwaniem. napisałem więc program w ten sposób: '/////////////////////////////////////... TERMOSTAT /////////////// '//////////////////////...
Zrób obsługę przycisków w przerwaniu obsługującym multipleksowanie wyświetlaczy. Powinno się udać.
Autorowi tego postu przestawilem moje rozwiązanie i problem który mnie przystawil. Przerwanie które jest rozwiązaniem nie potrafie obsłużyć. A układ z myszki działa nienagannie, wraz z układem detekcji kierunku . W trakcie obrotu tarczy w sekwencji kodu występuje zdarzenie ze na kanale...
Czesc Ziomki a próbowaliscie może uruchomić źródła na innym układzie ? np Mega 8535 ? trzeba zmienic 2313inc.def na 8535def.inc na poczatku zrodla oraz wektory przerwań na początku ; Interrupt Vectors (AT90S2313) rjmp reset ; Reset rjmp int0_isr ; Extrenal INT0 rjmp 0 ; External...
Tak, można zrobić tak, że B pierwsze co zrobi to odblokuje przerwania. Będzie to działać ok. O priorytetach na ATTiny zapomnij - nie ma ich.
a jak się je mniej więcej określa? jeśli cię to interesuje to dla przykładowych 8MHz tak 1. ile zajmuje jeden takt zegara przy 8MHz = 125ns 2. ile czasu upływa pomiędzy kolejnymi przerwaniami? 8MHz / 256 = 31250 (256 bo timer akurat dzieli przez 256 a preskaler = 1) - zatem przerwanie...
jak odłącze DS'a to mi się wtedy na pierwszej pozycji zmienia wyświetlana wartość mimo tego że nie nastąpił jeszcze odczyt temperatury. Aha no i jak odłączę czujnik to po przerwaniu powinny się pojawić 99,a nic takiego się nie dzieje. A co do przerwania to ta wersja również powinna działać??
Wg Twojego programu po naciśnięciu przycisku procedura obsługi przycisku może wykonać się np 1000 razy zanim puścisz przycisk w tym samym czasie Timer zgłosi przerwanie z 100 razy, do tego dojdą zakłócenia z innych przycisków i nieszczęście gotowe. Nie wiem czy ktoś mnie poprze ale...
Albo czy da sie to jakos obejsc? W opisie do funkcji RC5Send napisane jest że kod powstał na podstawie noty aplikacyjnej Ger Langezaal. Na stronie MCS Electronics jest ten kod [url=]AN #105 - Sending RC5 and SONY IR codes. Można spróbować dostosować go do własnych potrzeb ;). Tu jest też...
No tak ale reset to jest chyba reset i procesor się resetuje. Mam ustawioną opcję tylko resetu sprzętowego, ba ATtina ma możliwość jeszcze generowania przerwania. Bezpieczniki ustawione są jak załączniku. Nawet sprawdzam na początku programu czy reset pochodzi z watchdoga, ale tak nie jest. A...
ADC liczy od 0 do 1023, czyli regulacji jest 1024 "punkty". Jeśli chcesz by liczyło WAITMS do 300 to musisz to podzielić. Jeśli podzielisz 1024/4 = 256, jeśli 1024/3 = 341.3. Zamiast: waitms 300 wpisz waitms y Oczywiście to nie zdrowe rozwiązanie, Uc nic nie robi tylko liczy...
W procesorach jest takie bogactwo przerwań, że gdyby miał się budzić na każde, nawet zablokowane, to nigdy by się nie wyspał. Jak ja. :)
W tym ATtiny nie ma pinu PD6, którego sprawdzasz: [syntax=C]if (!(PIND & 0b01000000)) //sprawdzenie wyzwalania zewnetrznego[/syntax] Pewnie chodziło Ci o pin PD3 (ten od INT1)? EDIT: Ups, błąd, jest PD6 :) Mógłbyś dodać jakiś schemat albo opisać jak to ma w zamierzeniu działać?...
Nie mam jakiegoś konkretnego pomysłu, bo nie widzę całości kodu, ale zauważyłem, że "puste" przerwania wskazują na "reset". .cseg ; Interrupt Vectors (ATtiny2313) rjmp reset ;Reset rjmp... itd. Wydaje mi się, że może być któreś z "pustych" przerwań...
I tu dochodzimy do tego samego, co zawsze, czyli do tego, że taka budowa programu po prostu nie pasuje do większości realnych zastosowań. Zdaję sobie sprawę, że jesteś bardzo początkujący, ale napiszę Ci, jak to powinno być zrobione. Po pierwsze - wszystko robimy w przerwaniu timera,...
Witam ponownie, przepraszam za opóźnienie. Niestety nie mogłem zająć się urządzeniem przez ostatnie kilka dni. Na oryginalnych ustawieniach(timer1[16 bit], 1MHz, bez prescalera) działa bez większych czknięć z większych odległości. Z bliska problemy z transmisją są częstsze, ale dalej...
Sygnal jest z Atmega8 8MHz i PWM sterowany przez timer w przerwaniu, nie sprzetowo. Dioda na sasiednim pinie sterowana tak samo jako kontrolka. Piny pomiedzy Atmega i Attiny polaczone bezposrednio. Teraz sie zastanawiam, ze moze na tej linii trzeba dac jakis rezystor i to pomoze. Ciagle jak zrobie...
Witaj. Przyglądnij się przykładowi na ATmega: Na podstawie przykładu opracuj swoją wersję na ATtiny. Funkcja USART_ReceiveByte() do przerwań Ci się nie przyda.
Ja ogólnie etap migania diodami mam już za sobą zrobiłem parę projektów prostych wykorzystujących TIMERY, Przerwania zewnętrzne, obsługę klawiatury bądź LCD i teraz zamierzam się właśnie dokształcić w interfejsach a doświadczenia w tym temacie nie mam, dlatego też pytam się was. A...
Poprawiłem, o to chodziło? Wieczorem posprawdzam bo teraz mam trochę nauki :) Z bascomem raczej sobie poradzę bo domyślam się że trzeba tylko przerwanie przestawić na wykrywanie zbocza narastającego. Podświetlenia LCD nie mam możliwości odłączyć bo procesor nim nie steruje, podświetlenie...
Nie rozumiem jednej rzeczy. T0 ma preskaler ustawiony na 64 co daje częstotliwość taktowania 62500Hz, czyli T0 zwiększa swoją wartość co 0,000016s = 16us. Chcę mieć przerwanie CTC co 2ms = 0,002s. Czyli licznik musi doliczyć do 125 (0,002 / 0,000016 = 125). Według powyższego dla testu zrobiłem...
Oprócz zmiany w fusebicie CKSEL = 1111 trzeba zmienić prescaler.... chyba. Czy ktoś może podpowiedzieć, podać link jaki prescaler winien być ? Nie wykorzystujemy tu przerwań. Jedynie Nie przerwania decydują o potrzebie stosowania prescalera. Prescaler jest dzielnikiem zegara...
Witam. Wiem, że podobne problemy był już wałkowane milion razy lecz nie mogę sam sobie z tym poradzić. Do rzeczy: Chcę aby po przyciśnięciu przycisku dioda zapaliła się po pewnym czasie na krótką chwilę. Chcę to wykonać na przerwaniu, zależy mi na precyzyjnie odmierzonym czasie od...
znam czas wykonania rozkazów w taktach, wiem, ze przy częstotliwości 20MHz takt wynosi 50ns. Tyle to mogę sobie policzyć, chodzi mi o to czy faktycznie po wykonaniu instrukcji od razu mamy odpowiedni stan na nóżce układu czy jest jakieś jeszcze opóźnienie. Co do oscyloskopu... trzeba go posiadać...
W końcu znalazłem przyczynę problemów - dzięki sugestii Andrzej__S zweryfikowałem jeszcze raz układ by się na 100% upewnić czy mam wszystko dobrze podłączone i wszystko było OK tylko ja zapomniałem o jednej oczywistej rzeczy - sterowanie oświetleniem odbywa się za pomocą TRIAKA :) Gdy...
(...) Dowolny RTC, chociaż z potrzymaniem zasilania też niekiedy trzeba korygować trymerem i nie zawsze do końca z pozytywnym skutkiem. Na zwykłym kwarcu zegarkowym faktycznie. Mnie sie udało ustawić +/-1 sek./mieś. ale jak się zmieniła pora roku, co za tym idzie średnie temperatury...
Witam. Próbuję powoli nauczyć się pisania w ASM prostych programów na ATTINY13. Mam jednak problem z obsługą przerwań. Nie wiem, czy przyczyną jest błąd w programie, czy też nie umiem zasymulować przerwać w tym symulatorze. Otóż w pewnym miejscu programu usypiam uP rozkazem SLEEP...
Co do zerowania rejestrów to np. flagi przerwań "zeruje" się wpisaniem jedynki. Z kolei niektóre rejestry przyjmują wartość początkową inną niż zero (choć nie wiem czy są takie w tym procku, oprócz rejestru stosu, ale ten ustawiasz). -- edit --- I jeszcze mi się przypomniało:...
Ale zważ że 25Khz to oznacza obsługe co 50KHz czyli przy częstotliwości attiny 10MHz masz 200 cykli do dyspozycji. Poza tym, oznacza również, że przy zgłoszeniu przerwania innego w tym samym czasie będziesz miał zakłócenia w generowaniu przebiegu. Poza tym, niczego to nie zmienia w mojej...
Cześć Odbiornik ma taką konstrukcję, że posiada kondensator elektrolityczny na wejściu do wzmacniacza wyjściowego. Patrz schemat. Aby osiągnąć to co zamierzasz, należy po stronie nadawczej, podczas wciśnięcia przycisku wysyłać cały czas np AAAAAAAAAAAAA.....; puszczenie przycisku...
Włącz przerwania " Enable Interrupts " i możesz sprawdzić zamienić "OCR1B = 100" na " PWM1B =100 " Z ciekawości sprawdzę na attiny85 jak wrócę.
powrót do Attiny 13. Korzystam z przerwania od Timer0. Okres impulsów ok 27 us, pojedynczy impuls 1,2 us, funkcja micros wyłączona, w zasadzie wszystko pod kontrolą i realizuje się zgodnie z oczekiwaniem. Zamykam temat. Dodano po 6 Ogólny wniosek funkcja micros() dla Attiny...
Witam, mam problem z PWM na mikrokontrolerze Attiny. A dokładniej chciałem przy pomocy sprzętowego pwm (1kanał Oc0 PB2) wysterowac dwa rozne napiecia na dwoch pinach. Czesciowo mi to zadziałało, a konkretniej gdy ustalane wartosci są inne i zmienne w czasie po probie przypisania ich do pwm wystawiane...
Witam wszystkich, Tytułem wstępu: Jestem poczatkującym użytkownikiem Arduino (i dlatego piszę w dziale dla początkujących). Jednym z moich projektów jest sterowanie urządzeniem za pomocą enkodera. Problem wydaje się bardzo prosty - ale na Arduino. Z GitHub'a () ściągnąłem doskonałą...
Musisz zadbać o pozostałe wyprowadzenia. Wyłączyć im bufor wejściowy albo ustawić pullup. Jeśli z RTC korzystasz tylko z PIT, to nie musisz ustawiać bitu "Run In Standby" oraz "RTC Enable". W prawidłowo napisanym programie powinieneś mieć pobór prądu na poziomie około 1uA. Dzięki za...
Dzisiaj przedstawię państwu dwa sejfy dla dzieciaków, zrobione już jakiś czas temu. Jeden na atmega88, drugi na attiny44A. Ten pierwszy zrobiony na płytce prototypowej, następny dostał już swoją ładnie wytrawioną. Kiedy budowałem pierwszy sejf posiadałem tylko...
... bez tego nie moglem zrobic nic wiecej, a kompilator nic się nie buntowal :( a jesli chodzi o moja ten "OVERFLOW" to taka wersje mam z ksiazki :// Kompilator powinien "wywalić"(pewnie nie zauważyłeś) ostrzeżenie 'SIG_OVERFLOW0' appears to be a misspelled signal handler "błędnie wpisana...
waitms zdaje się korzysta właśnie z tego timera więc dlatego może masz ten problem. Spróbuj sobie wrzucić obsługę wyświetlacza w timer1 i wtedy waitms będzie może działał dobrze pozdrówka Robię to na Attiny 26L, wg pdfa on ma dwa timery. Być może ten drugi jest jakiś specjalny,...
a attiny z wewnętrznym oscylatorem działa na 1MHz? mi się wydawało ze wewnętrzny oscylator jest ustawiony domyślenie na 4MHz znalazłem w ustawieniach programu gdzie można wpisać częstotliwość pracy kostki :) korzystam z AVRStudio4
Bardzo bym sie zdziwil gdyby ten program w jego oryginalnej postaci lub nawet z pozniejszymi poprawkami mogl funkcjoniwac! Po pierwsze: Jest on nie pelny, nie tylko brak jak juz ktoz zauwazyl, deklaracji rodzaju, typu uC i jego cyklu pracy (czestotliwosci). Pomimo faktu ze nie ma w programie pomiarow...
Zmieniłem procek, zasymulowałem i działa, więc problem nie leży w składni. Nie za bardzo znam się na Attiny ale może są tam jakieś dodatkowe rejestry do ustawienia. Przeglądnąłem bibliotekę io.h, wektor dla INT0 jest prawidłowy. Dobra działa, coś jest powalone zmień INT0_vect na...
A tak na koniec to poproszę o jakieś jasne wyjaśnienie gdzie i do czego mogłbym to zastosować. Gdzie? Wszędzie, jak załapiesz ten mechanizm to sam zobaczysz że będziesz swój każdy program, nawet najdrobniejszy i na najmniejszego ATtiny pisał zaczynając przygotowywać RoundRobina...
No właśnie. można na ATTiny i WD, można dowolny ATMega z RTC, można XMEGA z RTC, co ma dodatkowo zaletę, że można go wybudzać w dowolnej chwili i ma podtrzymanie bateryjne. Opcji jest wiele.
Witam, przesymulowałem sobie pierwsze 8 minut działania zegarka. Dokładnie patrzyłem (wartość Stop Watch w symulatorze), kiedy wchodzę do obsługi przerwania. W ciągu tych 8 minut (odpowiada to 12.000 wywołań tego przerwania) błąd był niewidoczny, tzn. symulator nie był w stanie stwierdzić...
Jednak to wina czegoś innego, bo attiny padła na amen. Programuje się, ale program się nie wykonuje
Ciekawostka: w ATTINY1614, 1616 i 1617 jest atomowa. A jakim to cudem jezeli: attiny nie ma bitbandingu. avr8 nie ma instrukcji jednocześnie czytajacych i zapisujących w pamięci Takim cudem: Ma dużo więcej: Kontroler przerwań (2 poziomy, ,NMI) system zdarzeń mapowanie portów DAC 2...
Z nowych mam tylko AVR32DA28 na atmega i attiny problem nie występuje, xmega nie mam. Przeinstalowałem AS7, bez zmian. Dodano po 38 Namierzyłem metodą Macajewa takie wektory: PORTA_PORT_vect _VECTOR(3) powinno być: _VECTOR(6) TCB0_INT_vect _VECTOR(6) powinno być: _VECTOR(12) PORTD_PORT_vect...
Witam Napisałem sobie programik do sterowaia diodami led poprzez PWM. wszystko super chodzi, ale chciałem sobie zrobic teraz bajer, aby dany kolor utrzymywał się przez okreslona ilosc sekund. Do tego chcialbym zaprzac przerwanie np od timera T0. Niestety mimo moich wielokrotnych prob przerwanie...
...jeśli już coś robisz , to rób to dobrze , albo nie rób wogóle... Jeśli chcesz coś zrobić - zanim zrobisz to dobrze, musisz to zrobić jakkolwiek... ;-) ...inna szkoła. ...an external level interrupt, or an pin change interrupt can wake up the MCU. Czyli, że jeśli ustawiam zewnętrzne...
Może zbocza sygnału hsync nie są zbyt ostre i układ różnie reaguje.. Tu warto pomyśleć nad wykorzystaniem timera do generowania przerwań, a sam sygnał hsync próbkować w podprogramie obsługi przerwania, jeśli sygnał się przesuwa, to co kilka wywołań wprowadzać do timera jednocyklowe...
Witam Jakiś czas temu programowałem sporo na x51, ale to były jeszcze czasy kiedy się to robiło w ASM, a o kompilatorach C to można było pomarzyć - he,he . Ale do rzeczy: Dostałem płytkę z przkaźnikami i atiny5213 i musze to trochę oprogramować. Pytanie jest następujące: 1.Czy da...
A może jednak błędny opis na schemacie producenta, polega na tym, iż prawidłowy jest opis, a podłączenia nie. Czyli przeciwnie niż się spodziewasz. Sprawdzałeś to? na wcześniejszych schematach, gdzie była jeszcze dioda LED obok przycisku, zrobilem maly test i po prostu dałem stan wysoki...
Witam. Procek tak się zachowuje bo nie określiłeś czy przerwanie ma być generowane przez zbocze opadające, rosnące czy przez stan niski na końcówce INT. Domyślnie wyzwalane jest stanem niskim więc wykonuje się raz za razem. Instrukcja Config INTx. Przeznaczenie: Konfiguruje.....
Witam Chciałem zrobić prosty sterownik światła na pilota. Poniższy kod nie daje się skompilować - czy są jakieś przeciwwskazania do pracy Attiny45 + RC5 ? [syntax=basic4gl] $regfile = "attiny45.dat" 'etykietka mikrokontrolera $crystal = 9600000 ...
Witam! Staram się rozgryźć dlaczego coś co nie ma prawa działać działa :) obsługa klawisza na przerwaniach Klawisz podłączony do portu PCINT przerwania: [syntax=c] #def... _TICK_TIME (1000/((F_CPU / 64) / 256)) #define _DEBOUNCE 20 #define _DEBOUNCE_TICKS (_DEBOUNCE...
Witam chciałbym zapytać czy jest możliwe uruchomienie przerwania ICP na ATTINY 13: Przykład przerwania: [syntax=c]TCCR1B |= (1<<CS11); // Timer1 / 8 ICP TCCR1B &=...
Algorytm nie jest idealny, poprostu dla wartości feedback poniżej ustawionego napiecia dodaje 1 do wartości pwm (0-255) Z jaką częstotliwością to sie wykonuje? Robisz to w przerwaniach czy pętli głównego programu? Zmiana wartosci duty dzieje sie w petli loop. Czestotliwosc jest ustawiona...
Cześć Przede wszystkim musze powiedzieć że nie znam sie ani odrobine na asemblerze . Mamy tu koder do 4kanałowego sterowania proporcjonalngo w asm'ie na attiny 15. teraz pytanie -czy da sie przerobić kod tak ,aby miał ich 7 lub 8kanałów i wrzucić go do Attiny 26 ?? I czy to koder PPM?? PS...
Witam, jestem w trakcie budowy robota. Będzie to połączenie line follower'a z robotem, którego zadaniem będzie omijanie przeszkód. Jako czujniki linii zastosowałem TCRT5000, a moduł odpowiedzialny za wykrywanie przeszkód to dwie diody IR oraz odbiornik TSOP. Częstotliwość dla diód generowana...
Witam, Na wstępie chciałbym powiedzieć, że zanim zdecydowałem się napisać ten post, używałem szukajki na tym forum i wujka google ale bez pozytywnych rezultatów (przeczytałem bardzo wiele tematów i skopiowałem wiele kodów). Przejrzałem także plik Help w Bascom. Problem polega na tym,...
Autor poniższej konstrukcji przedstawiał już podobny układ - miniaturowy zegarek oparty o ATtiny ( Krok 1: Przygotowania Mikrokontroler Układ oparty jest o mikrokontrolery AVR firmy Atmel ATtiny85. Autor wykorzystał element w obudowie SOIC z uwagi na niezwykle mały rozmiar....
Czasomierz dla klejarki pistoletowej Bosch PKP 18 E. Po kolejnej awarii pistoletu do klejenia na gorąco, kupiłem klejarkę firmy Bosch. Klejarka ta, wymaga siedmiominutowego wstępnego rozgrzania, aby umożliwiała właściwe klejenie. Postanowiłem zatem zrobić zegar odmierzający...
W ostatnich latach byliśmy świadkami licznych fuzji na rynku elektroniki. O ile dla młodszych inżynierów wydarzenia te często nie wiążą się z żadnymi emocjami, to bardziej doświadczeni elektronicy nierzadko martwią się o konkurencję na rynku oraz o los technologii i rodzin produktów,...
kolego - świat idzie do przodu, technologia jest coraz nowsza więc nie dziw się, że ktoś będzie produkował Stareńki już układ AT90S2313 skoro ATtiny2313 ma wszystko to co jego poprzednik plus kilka dodatkowych fajnych rzeczy. hmmm chyba, że ty cały czas przyjmujesz to, że jeśli wspominam...
O ile sobie dobrze przypominam należy jeszcze identyfikować niestety programowo stan SS. Co więcej używałem takiej komunikacji pomiędzy ATMega32(master) i ATTiny(slave) nie było tego problemu - ATTiny robił to samodzielnie Pozdro KA Nie, nie trzeba. W slave'ie wywoływane jest przerwanie,...
Witam. Próbuje skomunikować uC. Attiny25 ma pracować jako slave i wysyłać dane do mastera (Atmega8535). Kod Atmegi: Dodano po 4 Zauważyłem chyba błąd. [syntax=c]void PortSettingsSPI(void) { DDRB |= _BV(D0) | _BV(USCK); DDRB &= ~_BV(DI); }[/syntax] USCK powinno być wejściem...
Pilot oparty na projekcie jednak zbudowany na mniejszym attiny13, myślę że można by zastosować dostępny na Allegro attiny4. Zasada działania jest dość prosta. Po uruchomieniu podzespołów (timera i przerwań) attiny przechodzi w tryb power-down, w którym oczekuje na przerwanie pcint0...
Witam Piszę program pod sterownik na attiny2313. Na chwilę obecną jest obsługa wyświetlacza LED 3 cyfry multipleksowanego przerwaniami z timer0. Chciałem wprowadzić attiny w tryb power down. Jak doczytałem tryb powerdown powinien ustawić wszystkie porty w tryb wysokiej impedancji...
Przerwanie przyda się jedno odbiór ramki USART - będzie adres urządzenie + komenda, przejście w tryb nadawania. Można by i pewnie zrobić to w pętli ale jakoś wolę przerwanie jak i tak nie wykorzystam zasobów uC. Myślałem jeszcze o innym rozwiązaniu. Użyć transcriverów RS485 na każdej...
1. Nie ustawiasz bitów w MCUCR co powoduje, że przerwanie jest generowane dopóki na wejściu jest poziom niski. Chciałem aby przerwanie było aktywowane stanem niskim dlatego ustawiłem portd w stan wysoki a MCUR nie ruszałem. Zauważyłem, że pomimo ustawienia stanu wysokiego w symulatorze...
Teraz nie rozumie juz nic. Z tego co bascom robi w powerdown.Wygląda jakby tylko włączał zezwolenie na tryby uśpienia. Czy ja coś źle odczytuje? Czy kolega Zumek mógłby napisać w ASM przejście do ST-BY dla tego Attiny? Bo według mnie było by to tak: $asm !IN R24,mcucr !ORI...
Zaprezentować dziś chcę projekt lampki RGB który wykonałem na pracę zaliczeniową z systemów wbudowanych. Moim zdaniem osiągnięty efekt jest zadowalający więc może ktoś będzie zainteresowany wykonaniem urządzenia według mojego projektu. Jako, że jest to pierwszy zrealizowany...
A, że tak dopytam...... tatuś się ni w ząb na tym nie zna? a chce zamieniać scalaka? tzn jak? - sam będzie go programował ? jeśli tak to czym? - tzn czy ma kod źródłowy, który można przekompilować ? bo jeśli ma - to można sobie czasami jeszcze z tymi różnicami poradzić o ile są...
Witam Szanownych Kolegów. Chciałbym zaprezentować moją konstrukcję stroboskopu opartego o mikroprocesor ATmega16 i układ detekcji zera sinusoidy sieciowej. Mikroprocesor steruje impulsem wyzwalającym powstającym od trafo wysokonapięciowego. Docelowo powinien realizować obsługę przycisków...
Panowie, zdaję sobie sprawę z niedoskonałości takiego rozwiązania - dla tego nieco napisałem o źródle taktowania dla miernika. Czym lepsze źródełko tym pomiar ma więcej sensu. Jeśli zastosujemy dobry generator nawet bez kompensacji temp to już będzie o niebo lepiej. Po za tym porobiłem...
(at)tmf - dziękuję za miłe słowa :) Właśnie takie było założenie co do grupy "docelowej". Myślę, że jeszcze długo ATmegi i ATtiny będą punktem startowym dla hobbystów ze względu na nawał informacji w Internecie i mocno zakorzeniony pogląd jakoby wszystko inne było drogie/trudne...
Dobry układ edukacyjny :) zamiast łączyć dwa tranzystory termokurczakiem lepiej wziąć od razu dwa tranzystory w jednej obudowie - jest to o tyle lepsze, że oba są na tej samej płytce krzemowej. Kosztuje grosze a działa zdecydowanie lepiej. Z całą pewnością taki element jest bardziej...
Niedawno kupiłem CA80 na znanym portalu. W emulatorze (nie publikuję nowszych wersji, bo po prostu go nie rozwijam, myślę, ze ma już wszystko, co jest potrzebne) dorobiłem zegar czasu rzeczywistego w sposób udający dodatkowy układ komunikujący się z Z80 za pomocą rozkazów IN i OUT. Myślę,...
Bo jak programujesz 1000 szt to robisz to kilka razy szybciej. Jeśli programuję takie ilości to zamawiam preprogramowane elementy, lub programuję EEPROM przed wlutowaniem. Przecież gdyby to miał robić MCU to musiałbym mieć program, który po pierwszym uruchomieniu jest zbędny. Zresztą...
teraz kolega rakuś widzi że nie tylko ja miałem problemy ze zrozumieniem problemu No moi drodzy - analiza wymaga czytania! Nawet Lenin mawaił: CZYTAĆ! czyli napiszmy to jasno, ukontroler dostaje z PC wektor o jaki musi przesunąć frez, czyli x, y, z, no i jakaś informacja o czasie jaki...
Proponuję zacząć od początku: założenia, wymagania na mikrokontroler, dobór elementów. Nie jestem pewny, czy potrzbujesz rzeczywiście 4 przerwań, ale jeżeli tak, to znajdź mikrokontroler, który ma 4 wejścia przerwań, np. chociażby seria ATtiny lub cokolwik, co ma "port change interrupt"....
Dendy Keyboard Transformer - podłącz klawiaturę i magnetofon do Pegasusa! Artykuł powstał jako opis zmagań z próbą zrobienia reprodukcji kardridża Keyboard Transformer - rosyjskiego wynalazku, który umożliwia pisanie programów w BASICU. Kardridż udostępnia gniazdo klawiatury i magnetofonu...
Witam, Ostatnio również ja, skuszony możliwościami układów rfm12, postanowiłem zakupić dwa moduły tego typu (433 MHz). Śledząc ten wątek natknąłem się na kod użytkownika avatar , postanowiłem wykorzystać go więc w mojej aplikacji. Niestety, po podłączeniu modułów do procesorów...
SIG_INTERRUPT1 jest wyzwalany przez opadające zbocze z transoptora zasilanego z prostownika którym wykrywam przejście przez zero. Miałem problem z pilotem bo mniej wiecej co 2 wcisnięcie przycisku układ reagował. Domyślalem się (błędnie) że podczas dekodowania rc5 dochodzi do przerwania...
Witam, Mam do zrobienia prędkościomierz/ obrotomierz z zastosowaniem aTTINY 26, Hallotronu TLE4905L Mam problem z zerowaniem poprzedniego odczytu, aby wyzerować ustawiam i=0, ale kasuje to tylko cyfrę jedności, a cyfry dziesiątek i setek zostają nietknięte. Czy macie jakiś pomysł aby ominąć...
Witam Przedstawiony zegar nie jest niczym szczególnym i powstał z potrzeby ponad 6 lat temu. Choć nie jest to konstrukcja w pełni zasługująca na miano udanej jestem z niej zadowolony bo wciąż działa. Moja mama która najmłodsza już nie jest potrzebowała jakiś zegar. Chciała...
Dzięki zbig_wwl. Pokombinuje z tym stosem. A co do PWM to faktycznie nie używam go bo i po co:) Pilot ma następujące zadanie: Po uruchomieniu włączone zostaje przerwanie int0. Po wciśnięciu przycisku zewnętrznego (dodane obwody eliminujące drgania styków) program wyłącza przerwanie int0,...
Witam Na wstępie zaznaczam, że AVR-ami zajmuje się dopiero od tygodnia :). Mam problem jak w temacie. Potrzebuję aby timer 1 (16 bitowy) liczył od ustalonej wartości początkowej, a po wystąpieniu przepełnienia wygenerował przerwanie i się zatrzymał. Potrzebuję odliczyć 25ms. Attiny...
różnią się ilością poszczególnych pamięci (flash RAM i Eeprom), taktowaniem, bebechami (np. jakość i szybkość ADC, liczba przerwań, obsługiwane magistrale i wszelkie standardy), ilością i rozmieszczeniam portów, obudową (niektóre są tylko w SMD, niektóre w więcej niż 1 rodzaju...
Musisz przemyśleć algorytm działania programu. Po pierwsze te mrugające diody zrób na przerwaniach z jakiegoś timera. Ustaw przerwanie tak żeby występowało kilka razy na sekundę i zliczaj ilość przerwań do 2 sekund i raz zapalaj raz gaś to bardzo proste do zrobienia. Co do pozostałych...
Ja tam sobie myślę, że po to wymyślono kilka stylów programowania, aby dobierać optymalny do problemu, a nie na siłę próbować rozwiązać problem naginając go do "jedynie słusznego" stylu. Z pewnością część problemów świetnie rozwiązuje się tak jak kolega dondu napisał, wrzucając...
Witam. Mam problem z dekodowaniem sygnału z pilota. Pilot to RC5-BP7. Kod znalazłem na stronie o kodzie rc5, przerobiłem pod Atmege16 bo napisany został na Attiny. Zmieniłem również wartości wpisywane do licznika, ponieważ Atmega16 standardowo jak dobrze wiem działa na 1MHZ. Układ reaguje...