Możesz czytać timer w przerwaniu INT lub PCINT
Warunek w if nie będzie spełniony bo raczej te kilka instrukcji w przerwaniu nie bedzie się wykonywać 20ms. Czas wykonywania tego ISR nie ma nic wspólnego z wartością _debounce_timer w momencie porównania.
Po pierwsze...nie ma takiego przerwania PCINT w ATtiny. Konfigurujesz to w zupełnie inny sposób (BOTHEDGES). Po drugie z założenia nie patrzę na kody Arduino, gdyż nie jest to jakikolwiek rezerwuar jakichkolwiek rozwiązań. Z resztą nie w tym problem. Popełniam jakiś błąd programowy a nie koncepcyjny, gdyż zawsze działało to dobrze... R
Jeden sygnał = jeden pin ICP. Wystarczy sobie zmieniać w przerwaniu od ICP, zbocze na jakie ma reagować to przerwanie. Ewentualnie przy większej liczbie sygnałów - przerwania INT lub PCINT.
Czego oczekuje NAZE Ci niestety nie powiem. Poszukaj informacji w manualu. Po wyłączeniu nadajnika dioda przy attiny powinna zgasnąć, bo brak PWM to brak PCINT, a tam jest załączana. Możesz dopisać symulację dodatkowych kanałów i sprawdzić, czy coś to pomoże. Dodaj sobie np. drugi output compare do tego licznika, który już masz. Jak zliczysz 6 wyłączeń...
Przerwania PCINTx wykonują się przy każdej zmianie stanu logicznego, niema możliwości konfiguracji np. tylko dla zbocz narastającego lub opadającego. Stan zbocza na poszczególnym pinie sprawdzasz w przerwaniu. Attiny13 ma 6 pinów PB.0-PB.5 (PCINT0 do PCINT5) które mogą wywołać przerwanie. I tu jest jedna myląca rzecz :) dla tych pinów jest tylko jeden...
Każdy z pinów ATTiny może wywoływać przerwanie PCINTn... Skoro miałem dzialający program na arduino to mysłałem że bez problemu da się go wgrać do ATTiny. Nie rozumiem toku myślenia - Arduino UNO to ATMega328P, która jest dostępna w obudowie DIL, TQFP, QFN - do wyboru, do koloru. ATmega328P na 2 kB RAMu i 32 kB Flasha, a ATTiny85 0,5 kB RAMu i 8 kB...
Dzięki za błyskawiczną odpowiedź i za rozjaśnienie pewnych kwestii. Attiny13 nie należy do grupy/rodziny Attiny25/45/85. Tak, masz rację. Pisanie o północy może być przyczyną różnych dziwnych pomyłek. Najpierw sprecyzuj, do których interruptów referujesz i masz zamiar je wykorzystać. Czy są to INT0 i INT1, czy też chcesz użyć któreś z PCINT. W programie...
Witam. Dla wejść INT0 i INT1 możesz skonfigurować przerwanie dla zbocza narastającego, opadającego, zmiany stanu lub stanu niskiego. Przerwanie PCINT jest wywoływane przez zmianę stanu na wejściach PCINT0 - PCINT7. Dodatkowo można określić które z wejść PCINT ma wywołać przerwanie za pomocą rejestru PCMSK. Pozdrawiam - Daniel
Pytałeś o wybudzanie procesora, odpowiedz masz w linku dla przykładu klawiatury matrycowej. W ogóle lepiej zastosuj power-down A wybudzić możesz tylko stanem niskim przerwania int0. A jeśli chodzi o przerwania pin change warto zapoznać sie z rejestrami z tym związanymi a wszystko stanie się jasne. Chodzi o to ze przerwania zostaje wywołane, jeśli choć...
Zrób coś takiego (pisane z palca, więc może wymagać poprawek). Zdecydowanie. Brakuje funkcji config_timer(), config_sleep(), config_ports(). Dodatkowo jak się zagłebisz w peryferia attiny 13 to zobaczysz, że Twój pomysł z timerem jest niestety nie trafiony. Proponuję coś takiego: [syntax=c]#include <avr/io.h> #include <stdint.h> #include...
Soreczki zły tytuł attiny oczywiście :D. Ale port jest bo jest podłaczony i go czytam programem.
ja zdaje się ze tak ale na innym procku. Jak mówiłem ci o ile robisz to jak należy czyli nie włączysz pinów PCINT na których jest AC, który wykorzystujesz to wszystko jest w porządku. i to nie tylko może ale i musi działać.
Mam ustawiony timer na 4kHz [syntax=csharp]cli(); TCNT1 = 0; TCCR1 = 0; OCR1C = 249; // 4000 Hz (16000000/((249+1)*16)) OCR1A = OCR1C; TCCR1 |= (1 << CTC1); TCCR1 |= (1 << CS12) | (1 << CS10); TIMSK |= (1 << OCIE1A); sei();[/syntax] W przerwaniu timera machałem pinem [syntax=csharp]ISR(TIMER1_COMPA_vect) { //licznik timer1 przepełnienie...
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ą one istotne w kodzie właśnie. (bo tak jakoś od tyłka strony podchodzisz...
2. Och te upały - oczywiście ustawia, a nie zapamiętuje :) 1. W teście powyżej INT0 nie ma włączonej obsługi przerwań (fragment jest zakomentowany), ale dla testów funkcję obsługi przerwania zostawiłem. Oba przerwania mają na swoich pinach włączone pull-up więc operowanie nimi odbywa się przez podanie stanu niskiego na pin, czyli przez zwarcie do masy....
Z tym, że tablice musiałbym wcześniej wpisać w program, a mi chodzi o to, by "uczyć" tego robota danego zadania. Jeśli zmieniłbym odległośc punktu A od B i znowu postawił przeszkode, w którą by robot uderzył, to wtedy ponownie musiałby zapamiętać nową trase. Przy czym jeśli działałbym w obrębie pamięci RAM, kasowałbym ją po prostu resetem zasilania....
Przerwania typu PCINT działają podczas zmiany stanu pinu, obojętnie czy to jest zbocze narastające czy opadające. Poprostu ma być to zmiana stanu, tak więc jeśli naciśniesz przycisk to przerwanie bedzie generowane dwa razy (w momencie naciśniećia i puszczenia). Natomiast inaczej jest w przypadku przerwań INT0 i INT1 gdzie możesz sobie wybrać kiedy ma...
Programik dla AVT3500 z ATTiny2313: ; Henryk Więsyk ; 16.10.2007 ; wersja 1.0 - przerobiona na ATTiny2313 ; Dioda do masy z OC0A ; Wewnętrzny oscylator ustawiony na 1MHz (RC(at)8MHZ + CLKDIV8) .include "tn2313def.inc" ;***************************************... ; Definicje ;***************************************... .def czas1...
Nie znam się na C :) ale wydaje mi się że błąd jest w tej linii: [syntax=c]PCMSK |= (PCINT0); //PCINT[/syntax] raczej powinno być tak: [syntax=c]PCMSK |= (1<<PCINT0); //PCINT[/syntax] PB0 ma być ustawione jako wejście.
ISR(PCINT0_vect) { ... // Code to handle the event. } ISR(PCINT1_vect, ISR_ALIASOF(PCINT0_vect)); http://www.nongnu.org/avr-libc/user-manu...
snnaap dal rade - dzieki. Najwyrazniej problem jest w tym ze stan logiczny pinu nie nadaza za zmiana zbocza. O dziwo bardzo podobny kod do pierwotnego tylko na przerwaniu PCINT dziala normalnie. Jak by ktos potrzebowal: [syntax=c]GIMSK |= (1<<PCIE); PCMSK |= (1<<PCINT1); ISR (PCINT0_vect) { if (PINB & (1<<PB1)) { ledon; } else...
Kolego zobacz. Nie jestem asem asemblera, ale lubię się uczyć. Wydaje mi się, że ten kod nie jest skomplikowany :D W tym kodzie z wyjściami chwilowymi ustawiany jest jeden z bitów portu a reszta wyłączana. Odpowiadają za to instrukcje SBI - Set Bit I/O Register - Ustaw Bit w rejestrze portu CBI - Clear Bit I/O Register - Skasj Bit w rejestrze portu...
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 tutaj, iż ATtiny ma oscylator wewnętrzny to już nie może mieć...
Na tych pierwszych. PCINTx to inna bajka.
To trzeba już nałożyć programowo na przerwanie PCINT. Ogólnie konfigurujesz PCMSK tak, aby były aktywne piny 3 i 4, a potem w programie przerwania sprawdzasz, który pin zmienił stan (wygenerował przerwanie) oraz w jakim był stanie przed przerwaniem (stąd wiesz jakie zbocze wygenerowało przerwanie). Można więc nawet programowo przypisać inne funkcje...
Aktualnie programuje w IDE, więc jeśli dobrze rozumiem, to przerwanie na 1 pinie ATtiny85, które będzie się aktywowało przy przejściu ze stanu niskiego w wysoki, będzie wyglądało tak : Nie, nie będzie....(!) Zauważ ze Attiny 85 nie posiada interruptu INT1; ma tylko INT0 na pinie 7 (po przemapowaniu w arduino jest to pin 2). Referujesz dalej „...
Czy taki algorytm jest zamierzony? [syntax=c]ISR(PCINT_vect) //pilot-obsługa przerwania generowanego z PCINT0 { if(a==1) //zmienna a wprowadzona dla obsługi co 2-giego zbocza (wykrywane jest każde) { ... a=0; } else a=1; }[/syntax]
Hej. Moim zdaniem wyeliminowanie R2 spowoduje na dłuższą metę (o ile już nie spowodowało) uszkodzenie diody. Jedyne co ją teraz ratuje, to że pracuje impulsowo. Tak długich odcinków uśpienia nie osiągniesz. Z uśpienia, z tego co pamiętam, może wybudzić tylko WDT (watch dog timer) w trybie przerwania (nie resetu). Tam możesz ustawić maksymalnie 8s. Oczywiście...
Witam, mam problem z obsługą przerwań zewnętrznych INT0 oraz INT1 w symulatorze (Simulator). Piszę w AVR Studio 4.19, gdyż Atmel Studio nie ma symulatora dla ATtiny87. Popatrzcie na ten banalny kod (okroiłem pierwotny kod do absolutnego minimum): [syntax=c] #include <avr/interrupt.h> unsigned char i; ISR(INT0_vect) //interrupt at PB6 { i++; }...
Ma on poprostu określić czy koło się kręci czy też nie. Z jaka prędkością kręci się koło? 25ms? W kodzie znalazłem Waitms 100 Loop Nie ma formatowania i ciężko to się analizuje, w konsekwencji, bez zgłębiania "tajników" kodu nie wiem gdzie jest te 100ms. Jeśli w pętli głównej, to znaczy, że max 10 razy na sekundę coś tam jest sprawdzane. Jeśli zmiana...
Witam Potrzebny mały (mała obudowa - ok 20 pinów) i nie za drogi i łatwo dostępny mikrokontroler z: -INT0 -INT1 -ADC i jeszcze jakby miał USART to już by było wspaniale, w ostateczności -INT0 -PCINT -ADC - USART - prawdziwy - nie LIN Wszystkie powyższe wymagania ma np ATMega48, ale grzechem byłby ją wykorzystywać do moich skromych potrzeb. Najlepiej...
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 pilota TC0 nie musi pracować) - czas, który chcę odczekać to 14700us...
Na początku chciałbym zaznaczyć, że znam się na programowaniu w C tylko natomiast jeśli chodzi o mikrokontrolery to jestem początkujący. Wszystko zaczęło się od tego, że potrzebowałem zamiennika układu 1-wire DS2423. Jest to podwójny licznik impulsów. Niestety Maxim/Dallas już go nie produkuje ale znalazłem implementację tego licznika na uC AVR. https://github.com/smurfix/owslave...
http://obrazki.elektroda.pl/7214276300_1... Pilot oparty na projekcie http://www.bigmike.it/ircontrol/ 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...
Witam. Piszę mały program na ATetiny 13. Program ma wyglądać tak że po każdej 1 sek ma sprawdzać ilość przerwań o ile zliczanie przerwań działa to niestety gdy dodałem do tego Timer przestało cokolwiek reagować. taktowanie procka to 9,6 MHz Jak chciałem ustawić timer: tryb CTC preskaler 1024 wychodzi wtedy 9375 cyki nadal za dużo do wpisania więc po...
ISR (PCINT0_vect) // Slider switch { .... return; } ... ISR (PCINT3_vect) { ... return; } Returny są niepotrzebne (aczkolwiek nie szkodzą). ADCSRA &= ~(1<<ADEN); // Wylaczenie ADC To za mało, peryferiom (dotyczy to także UART czy I2C) trzeba także "wyłączyć prąd". Najlepiej, zamiast bawić się rejestrem PRR skorzystać z gotowych makr dostarczanych...
:arrow: robię mały projekt: jeden słupek potrójnej sygnalizacji świetlnej, z przyciskiem, który będzie służył do zmiany długości cyklu świateł (jeden z pięciu predefiniowanych). :arrow: na chwilę obecną mam działające światełka, dodałem przerwanie przycisku (będąc świadomym jego prymitywności/braku poprawności działania), teraz chciałem dodać timer...
http://obrazki.elektroda.pl/4301568800_1... Autor poniższej konstrukcji przedstawiał już podobny układ - miniaturowy zegarek oparty o ATtiny ( Krok 1: Przygotowania http://obrazki.elektroda.pl/4194769400_1... Mikrokontroler Układ oparty jest o mikrokontrolery AVR firmy Atmel ATtiny85. Autor wykorzystał element w obudowie...
Jeśli Attiny ma działać jako proxy pomiędzy enkoderem, a radiem, to zrobiłbym to na przerwaniach. Tak, jak TMF pisał, to parę linijek kodu. [syntax=c]#include <avr/interrupt.h> int main(void) { DDRB |= (1<<PB3)|(1<<PB4); // set as outputs PORTB |= (1<<PB0)|(1<<PB1); // pull-up resistors proxy(); // set initial values before...
Dzięki za odzew :) Odpowiadam po kolei: - debugger - odpalam wbudowany symulator - sleep_mode - nie wejdzie w obslugę TIM0_OVF, to przerwanie włączone zostaje po naciśnięciu przycisku - sugerowana zmiana ustawień nie poprawiła sytuacji ... Jednak udało mi się rozwiązać problem. Miałem breakpoint ustawiony w linii: [syntax=cpp] ISR(PCINT0_vect){ if(button_down()){...
Jakie są polecania w bascom do obsługi pcint0 potrzebuje uruchomić to przerwanie w attiny 13. Gdyby ktoś jeszcze wiedział czym sie różni to przerwanie od ont0 to byłbym wdzięczny za podzielenie sie wiedzą.
Kolego dondu: deklaracja zmiennej licznik: unsigned long int licznik=0;//zmienna globalna licznik Fuse bity ustawione prawidłowo (temat wałkowany setki razy).Zegar definiowałem początkowo w ustawieniach konfiguracyjnych AVR Studio, później gdy zaczęły się problemy przez #define F_CPU. Do mirekk36: Timer sprzętowy działa bardzo dobrze i precyzyjnie....
Może źle zrozumiałem pierwszy post, ale przyciski podłączone do PA nie wygenerują przerwania PCINT(patrz nota katalogowa). A no tak, masz rację. :) W przypadku ATtiny2313 na PA nie będzie PCINT, ale w przypadku ATtiny2313A już tak, bo w tej wersji procesora dodali obsługę PCINT na każdym pinie każdego portu. Ja posługuję się DS'em od ATtiny2313A i...
Się tu kolega (at)jacekcz chyba zapędził. Ten uC ma 64B SRAM i 1KB FLASH. To co tu się "próbuje dziać" to to, że Pomiary ADC są robione w przerwaniu co czas okreslony Watchdogiem, ale to rozwiązanie od razu wybudza też uC z głębokiego snu POWERDOWN (jeśli w nim był) i tylko Watchdog, PCINT albo LOW_LEVEL może uC z tego wybudzić uC. Tak więc po co dokładać...
Poniżej działający program, może komuś się przyda, zamiast wewnętrznego podciągnięcia dałem zewnętrzny 1Mohm. Podczas uśpienia układ pobiera albo 1uA albo 6uA (6uA w sytuacji gdy czujnik się zawiesi, co powoduje że na wejściu procesora jest stan niski): #include <avr/io.h> #include <compat/deprecated.h> #include <util/delay.h> #include...
http://obrazki.elektroda.pl/3207877000_1... http://obrazki.elektroda.pl/9634776400_1... http://obrazki.elektroda.pl/8673988800_1... http://obrazki.elektroda.pl/3005768300_1... Termometr z funkcją pamiętania maksimum i minimum (zapisane w rejestrach, tracone przy braku zasilania). Program...
Bez podciągnięcia switchy do Vcc, układ sam zapala led'a. Ale pod podciągnięciu VCC, częściowo jest dobrze. Jednakże jest ten sam problem. Kiedy nacisnę 1 raz któryś switch, to ta instrukcja wykonuje się w nieskończoność. Jak temu zaradzić? Dodano po 12 Udało mi się rozwiązać problem w następujący sposób: Po wykonaniu danej operacji, na nowo podciągam...
No wiec spłodziłem takie coś. Problem taki że czasami przy resetowaniu/załączaniu układu zapala się czerwona dioda błędu (warunek if (czas>85 && czas<95) jest nie spełniony) Podłączenia do int0 poprzez pc814 (od strony 230v rezystory 100k, od strony attiny 20k) [syntax=c] #define CTC_ON TIMSK0 |= (1 << OCIE0A); #define CTC_OF TIMSK0...
Panel dotykowy z 6 diodami sterowany po i2c na ATTINY44 Poniższy materiał przedstawia próbę ugryzienia tematu krytycznych zależności czasowych w asemblerze. Zadaniem było stworzenie stabilnie działającej aplikacji która obsłuży: komunikację z procesorem nadrzędnym w trybie slave i2c sterowanie multipleksowanymi diodami z 8bitowa regulacja jasności...
Nie spotkałem w bascomie funkcji do konfiguracji Pin change innterrupt ani przerwania od watchdoga, ale oczywiście można to zrobić na rejestrach. W bascomie nie znam zawartości pliku ATtiny44.dat Czy oprócz nazw rejestrów są jeszcze bity? [syntax=basic4gl]$regfile = "ATtiny44.dat" Dim Praca as Bit Praca = 0 Config PINA.5 = Input PORTA.5 = 1 'włącz wewnętrzne...
Można włączyć przerwanie od zmiany stanu na PB3 (to chyba PCINT3) i w obsłudze przerwania zrównać jakąś zmienną czekania. Czyli jak czekasz aż coś spadnie do zera to piszesz w przerwaniu "Ta_zmienna = 1" Wtedy po wyjściu z przerwania Decr spowoduje że warunek "If Ta_zmienna = 0 Then" Analogicznie w górę możesz w przerwaniu napisać "Czekaj = 34" A teraz...
wróciłem i sprawdziłem i coś jeszcze nie tak po zmianach w kodzie µK już nie startuje z sekwencją tylko idzie spać... Tylko że jak go obudzę to jest zły i wykonuje sekwencje losową ilość razy... zmieniłem też trochę sekwencję i zastanawia mnie dlaczego polecenie cbr r16, (1<<portb1) gasiło mi 2 diody na raz (po uprzednim ich zapaleniu)....
Podałem Ci zapisy z noty ATtiny44V. Czyżby nie wiedzieli co piszą? Napisz do nich, że się nie znaja 😊. Poczytaj sobie dokumentację mikrokontrolera i popatrz na schematy. Testy wykonane przeze mnie potwierdzają informacje zawarte w dokumentacji. Żadnego zwiększonego poboru dla wiszących wejść. Mowa o trybie power-down, co innego w innych trybach....
Witam! Napisałem na szybko taki oto kod: ;Cała Ramka w R26:R27 .include "tn13adef.inc" .cseg .org 0 rjmp Init .org 2 rjmp PCINT .org 10 Init: cli ldi r16,ramend out spl,r16 ;Stos ldi r16,32 out GIMSK,r16 ldi r16,1 out PCMSK,r16 ;Ustawienie Przerwania PCINT0 sbi ddrb,pb2 sbi ddrb,pb1 sbi portb,pb2 cbi portb,pb1 sei Main: ;Pętla...
https://obrazki.elektroda.pl/6021352700_... https://obrazki.elektroda.pl/6921159500_... https://obrazki.elektroda.pl/3416870700_... https://obrazki.elektroda.pl/7961253800_... https://obrazki.elektroda.pl/7601893100_... Dzisiaj przedstawię państwu dwa sejfy dla dzieciaków,...
Łopatologicznie: 1. zgłasza się przerwanie ze zbocza opadającego. wywołana jest procedura jego obsługi. jesteśmy teraz w niej. 2. włączasz licznik by zliczał impulsy zegarowe przez prescaler. 3. czekasz tak długo aź stan na INT0 się zmieni na przeciwny - koniec impulsu. 4. zatrzymujesz licznik. odczytujesz zawartosc licznika i zapamiętujesz w zmiennej....
Po pierwsze musisz ustawić piny INT0 oraz INT1 jako wejscia (nie masz tego zrobionego) a samo aktywowanie przerwań nie ustawi tych pinów jako wejść czyli PINB.0 = Input PINB.1 = Input ........... pozdrawiam Obawam sie ze i to moze nie pracowac ! INT0 jest na wejsciu PD.2 INT1 ----------------- PD.3 Owszem port PB.0:7 jest/sa obslugiwane przez PCINT...
Witam. Przejrzalem CALE forum w poszukiwaniu rozwiazania mojego problemu. Probowalem wszystkiego co bylo podane w postach. Mam problem z polaczeniem tn2313 z ds18b20. zegar: kwarc 4MHz (testowalem juz na wew 1-8MHz bez rezultatow - ckdiv8 konfigurowalem poprawnie 1dis 0 en) podlaczam do portu d pod rozne piny. Od strony programowej tez powinno byc all...
Ok dziękuję za rady. No jest tak jak napisał mirekk36 - wybudzanie INTx działa tylko na poziom niski. Jako że chciałem mieć wybudzanie dowolna zmianą to zrobiłem wybudzanie poprzez przerwanie PCINT i zgodnie z dokumentacją działa :)
Kod miał być tak prosty jak opisywałeś w pierwszym poście i mu odpowiada. Jeśli chcesz mogę dodać Powerdown z którego wybudzi uC przerwanie od PCINT1. Watchdog to już chyba przerost formy nad treścią ahahahaha :D
Witam Potrzebuję zrobić regulator do silnika komutatorowego DC ze sprzężeniem zwrotnym w postaci enkodera optycznego (ENC, PA.0). Rozdzielczość enkodera to 32 imp/obr. Napisałem program w Bascomie, ale ten zdaje się nie działać. Założenia są takie: W zależności od tego, który pin uC (PB.0, PB.1) są aktywne, silnik ma kręcić się z dwoma różnymi prędkościami....
(at)excray: tak dla sprostowania - kod który wrzuciłem, a dokładniej mówiąc funkcja asm, działa dla 8 kanałów (ma możliwość sprawdzenia dotyku na 8 pinach), a Twój kod na jednym, dlatego musiałbyś porównać wielkość wycinając kod tylko dla jednego kanału ;) (at)gaskoin: To co robi texas jest najbliższe temu wykrywaniu które wrzuciłem w pierwszym poście....
Witam Podane wyżej wartości pochodziły od stabilizatora 7805, po podłączeniu do źródła 4,5V, mam 1,2mA, po przejściu w tryb IDLE 0,9mA, w tryb PowerDown 0,7mA. Niestety te 0,7mA pobiera układ nadajnika RF, a nie powinien włączyłem go jak na schemacie poniżej przez tranzystor npn BC547B: http://obrazki.elektroda.net/22_12607763... DDRB dla tego pinu...
Witam Przy próbie skompilowania pokazuje się taki błąd: http://obrazki.elektroda.pl/3448979900_1... [syntax=vbnet] $regfile = "attiny24.dat" $crystal = 1000000 Config Pina.0 = Input Set Porta.0 Config Pina.1 = Input Config Pina.2 = Input Config Pinb.0 = Input Set Portb.0 Config Pinb.1 = Input Set Portb.1 Config Pinb.2 = Output Config...
W projekcie założyłem sobie dwa przerwania z dwóch timerów. Jedno (nazwijmy je A) wywoływane często i krytyczne czasowo (przerwanie musi być obsłużone jak najszybciej po jego pojawieniu się), trwające tylko kilkanaście cykli. Drugie (B) mniej krytyczne (właściwie w ogóle nie krytyczne), wołane rzadziej, trwające kilkaset cykli. Główna pętla programu...
Witam Piszę sobie prosty program do sterowania triakiem. Na jednym pinie na przerwaniu PCINT0 jest zrobiony zero-crossing Program ma odpalić Triak z zadanym opóźnieniem na pół milisekundy. Przetwornik sobie chodzi w trybie free i ze starszych 8 bitów chce sobie wyliczyć opóźnienie od 0 do 9000 mikrosekund (9 mili). Problem mam z samym przeliczeniem...
Nie wiem jakie było pytanie, bo odpowiedź jest lekko wymijająca, niemniej istotne jest to zdanie: When internal 1.1V Vref is selected, by setting REFS To oznacza, że po wybraniu VREF=1.1V, pin PB0/AREF/ADC0/PCINT0 można dowolnie wykorzystywać, również jako wejście zewnętrznego napięcia odniesienia. Oczywiście trzeba pamiętać, żeby nie obciążać zewnętrznego...
Port B pin 5 to właśnie reset z noty: PB5 (PCINT5/RESET/ADC0/dW) A co do Fusebits to ich nie ruszałem to raczej nie to chyba ze przy programowaniu może wystąpić błąd i Fusebits przestawić??
jak wyglada sprawa programowania ATTiny13 w przypadku gdy w docelowym ukladzie bede wykorzystywal pin PB5 jako wyjscie czy trzeba cos przelaczac zeby pin PB5 przestawic z funkcji RESET na zwykly pin ?? i co to jest za opcja dW na tym pinie ?? mamjeszcze pytanie do stanu uspienia czy procesor moge wybudzic za pomoca dowolnego przerwania np PCINT2 ??
Co do przerwań... to chodzi mnie o podawanie sygnału na INT0, czy należy: wybrać typ sygnału zgłaszającego przerwanie (ustawiłem na narastające) aktywowac bit I w rejestrze SREG i ustawić odpowiednią maskę w rekestrze GIMSK, co wszystko zrobiłem. Coś przeoczyłęm? Chyba niepotrzebnie generowałem w rejstr PCMSK... Natomiast co do Timera...to przerwania...
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ą wersję 2.06f beta. Co do pisania programów to tak samo jak na...
Witam Zacząłem nowy miniprojekt i wyszło, że najlepiej byłoby użyć dwóch linii PWM. Ponieważ mam pod ręką sporo ATTiny13, postanowiłem wykorzystać ten typ. W dokumantacji napisano i to chyba nawet kilka razy, że ATTiny13 posiada dwa niezależne komparatory. No to napisałem: #include <avr/io.h> #include <stdint.h> #include <avr/interrupt.h>...
Dobra, chyba będzie lepiej, jak zamieszczę cały kod: [syntax=c]#include <avr/io.h> #include <stdint.h> #include <util/delay.h> #include <string.h> #include <avr/interrupt.h> #include <util/atomic.h> #include <avr/sleep.h> #include <avr/wdt.h> uint8_t time=0; #define LED_PIN (1<<PB3) // definiujemy...
Spróbuj tak [syntax=cpp] #include <avr/io.h> #define F_CPU 4800000 #include <util/delay.h> #include <avr/interrupt.h> #include <avr/sleep.h> #define t5sec 5*19 #define t10sec 10*19 #define t20sec 20*19 #define t30sec 30*19 #define t60sec 60*19 #define t120sec 120 * 19 #define t300sec 300 * 19 #define IR_ON PORTB|=0x01; #define...
Witam. Napisałem prosty program, by przetestować wyjścia PWM w attiny13. Podczas kompilacji wyskakują następujące błędy: UNDEFINED SYMBOL 'OCROA' & UNDEFINED SYMBOL 'OCROB' Przeszukiwałem internet, ale niestety nie znalazłem rozwiązania problemu. Ogólnie rzadko porusza się temat attiny13 jak i środowiska Code Vision... Oto program: /***************************************...
A nie da się tego w kilku linijkach w programie uwzględnić tak by nie zmieniać włącznika? Wymagałoby to zastosowania instrukcji z użyciem PCINT dla pinu podpiętego pod wyłącznik, oraz dostateczny 'debouncing' aby wyeliminowac drgania styków i otrzymac każdorazowo pojedynczy sygnał zmiany jego stanu. e marcus
Coś takiego znalazłem. Co prawda na Atiny ale można przerobić. [syntax=c]// // Talking to ultrasonic sensor HC-SR04 with an ATtiny84, and // sending distance data using serial communications. // // electronut.in // #include <avr/io.h> #include <string.h> #include <util/delay.h> #include <avr/interrupt.h> #define F_CPU 8000000...
ATtiny13 : (OC0A/B; PCINT0, 64B RAM 64B EEPROM 1kB Flash) ATtiny15 : (OC1A; INT0, 64B EEPROM 1kB Flash) ATiny11/12 odpadają - brak PWM ...Teoretycznie jeszcze : - ATtiny25/45/85 - 128/256/512B RAM 128/256/512B EEPROM 2/4/8Kb Flash. - ATtiny24/44/84 (14 pin) - 128/256/512B RAM 128/256/512B EEPROM 2/4/8Kb Flash. Ani w seguro.pl, ani w kamami.pl, ani na...
Dokładnie, skorzystanie z timera ułatwia sprawę - nie trzeba liczyć instrukcji procesora. Poniżej mała wskazówka z komentarzami (może nie jest to podręcznikowe cudo, ale najprostsze i najczytelniejsze zrealizowanie migacza na procesor attiny10 w ASM). [syntax=asm] /* * Created: 2012-07-12 10:32:21 * Author: Piotr */ ;dołączenie definicji procesora .include...
Witam. Programuje uC AtTiny48. Czujnik DS18B20 podpiąłem na trzech kablach i odczyt jest na pewno dobry. Problem polega na wyświetlaniu wyniku. Dokładnie chodzi o moment wywołania funkcji pomiaru temperatury. W czasie jej wykonywania na ekranie wyświetlana wartość znika i natychmiast się pojawia. Jest to spowodowane opóźnieniami które muszą się wykonać...
Więc potrzebuje rozwiązania na tym PCINT7...0, ponieważ chciał bym wyświetlić wszystkie wentyle na raz.
No i wszystko. Panowie, popełniłem błąd bo założyłem błędnie ten właśnie czas, nie wiem skąd mi się to w głowie pojawiło, przepraszam. Natomiast dzięki Waszym wyjaśnieniom i oscyloskopowi który służy mi nie od dziś, doszedłem do wszystkiego co aktualnie dla mnie istotne. Dziękuję za wyjaśnienia. Aktualnie z AtTiny85 wyciskam ile się da, i proszę mi...
Zmontowałem Programator i Adapter wedle linka z pierwszego postu, lecz coś nie działa z procesorem ATTiny2313 [url=http://www.ajd.czest.pl/~pawel.bork... Adapter: VCC mam pod nózką Nr 20 MOSI pod 17 PB5 (MOSI/DI/SDA/PCINT5) RST pod 1 SCK pod 19 PB7 (UCSK/SCL/PCINT7 MISO pod 18 PB6 (MISO/DO/PCINT6) GND pod 10 W BASCOM-AVR...
jeśli czytałeś uważnie jakiegoś helpa i tam napisano, że np ATmega8 a raczej jej przerwania INT0 i INT1 nie mogą być wyzwalane zboczami to masz rację - jest to błąd ;) dokładny opis na 100% znajdziesz w nocie pdf ;) danego procka i na tym zawsze się opieraj jako najważniejszym źródle informacji. ... jak słusznie zauważyłeś ta nóżka ma dwa alternatywne...
szukam osoby która podejmie się napisania programu w asemblerze na attiny 13 elementy programu to: ustawianie dwóch pinów uP przerwanie pcint0 zapisywanie jednej zmiennej w eeprom więcej szczegółów mailowo zgłoszenia na: buli-tech(małpa)wp.pl w temacie "asembler attiny13" w zgłoszeniu proszę podać nr. tel.
Zadklarowalem w ATTINY13 Rf_nsel Alias Portb.3 jako wyjscie czy moge tak zrobic jak to jest PB3/PCINT3/CLKI/ADC3 ? Czy to bedzie mi dzialalo poprawnie? Bo kompilacja jest 100% poprawna. A dlaczego miał byś nie móc?
Dziękuję wszystkim za podpowiedź i tłumaczenie. Nie chcę zakładać nowego tematu ale mam kolejny problem z tym że tu już tak łatwo mi nie będzie A włąśnie powinieneś, ponieważ temat jest zupełnie inny niż poprzedni. Post wydzieliłem do nowego nadając właściwy tytuł. In file included from C:\Users\Piotrek\Documents\Arduino\K...
Attiny 2313 https://obrazki.elektroda.pl/2263027300_... https://obrazki.elektroda.pl/8201939600_... https://obrazki.elektroda.pl/2899083800_... ten 1u rezystor traktować jak zwarcie: https://obrazki.elektroda.pl/5644468700_... dwa omy też prawie zwarcie https://obrazki.elektroda.pl/4941119300_...
Mam poważne wątpliwości czy kombinacja softwareowego USB i synchronicznego (busy waits!) TWI ma szansę zadziałać. Chyba faktycznie te synchroniczne i2c nie działa, bo mi się rozłącza z usb. już się bawię z isr: nwm o co chodzi z tym attiny ale mi hardware nie działał choćbym się zesrał, ostatecznie na scl dałem mniej więcej taki https://obrazki.elektroda.pl/1633124600_...
Układ jest fizyczną realizacją projektu http://obrazki.elektroda.pl/4955329500_1... http://obrazki.elektroda.pl/2160094000_1...
Niestety nie jestem bascomowy. Piszę tu o algorytmie i rozwiązaniach ale konkretnej implementacji w bascom ci nie podam. Pogooglaj temat pin change interrupt może znajdziesz jakiś kod w bascom. Znalazłem coś takiego wprawdzie na PCINT z detekcją na jednym pinie ale można to dorobić na pozostałe wg specyfikacji procesora ale przykład jest w C [url=http://www.insidegadgets.com/2011/0...
https://obrazki.elektroda.pl/5092109900_... Witam, Odkąd w moim aucie pojawił się pilot do bramy wjazdowej na posesje nie chciałem aby leżał on gdzieś na wierzchu albo żebym musiał go szukać w czeluściach jakiegoś schowka. Postanowiłem więc, że zintegruje go z autem, jednakże nie chciałem dodawać żadnych nowych przycisków, tylko użyć...
http://obrazki.elektroda.pl/5973660500_1... W większości drukarek 3D FDM występuje podgrzewana platforma, występuje bo termoplastiki lubią się kurczyć i większość z nich, głównie wariacje na temat ABSów bez podgrzewanego spodu zamieniają się w jakaś formę łódki. Większość z tych grzałek to wariacja na temat modelu mk2/mk3 - PCB dostosowanego...
http://obrazki.elektroda.pl/2475395200_1... Cześć! Pewnie część czytelników jest już znużona ilością tematów o zegarach nixie, ale nic nie poradzę na to, że ja także poddałem się magii tych cudownych wyświetlaczy minionej epoki. ;) Mogę tylko uspokoić, że jest to moja autorska konstrukcja, a nie kalka istniejącego projektu. Zdaję sobie...
Zacznijmy od pytania 1) - oba układy są z tej samej RODZINY, ale nie SERII. rodzina to AVR, potem mamy podrodziny: TinyAVR (np. ATTiny85), MegaAVR (np. ATMega8) i XMegaAVR (to już spore układy jak ATXMega128A1), a potem rodziny (np. ATMega88, 168, 328). I o ile wewnątrz takiej rodziny np. bez problemu kod dla ATMega88 odpalę na atmedze168 i 328, o tyle...
(at)dondu Twoje artykuły czytałem dokładnie ;-) Z kodu poniżej wycięte ustawianie portów (bonie widziałem żadnej różnicy w zużyciu prądu). Procek ustawione fusami na 8MHz wewnętrzny z podziałem przez 8 [syntax=vbnet] $crystal = 1000000 ' ustawiamy prędkość zegara $baud = 9600 ' ustawiamy prędkość transmisji $hwstack = 220 ' ustawiamy wielkość stosu...
Cześć mam taki kod: http://obrazki.elektroda.pl/1122613600_1... http://obrazki.elektroda.pl/3713003900_1...
witam napisałem krótką procedurę odczytującą tablice w zależności od wartości 4 bitów w porcie A, ale nie wiem dlaczego nie działa :-( Adres tablicy ustawia się prawidłowo, ale do R16 nie trafia wartość z tablicy, gdzie jest błąd ? Dodano po 32 Dobra, znalazłem błąd :-) Tablica adresowana jest pod adres 0x100 ale odczytuje ten adres z SRAM a nie pamięci...
Witam. Opracowałem prosty pilot podczerwieni protokołu RC-5 na ATTiny44, z pięcioma przyciskami (Standby, Vol+/Vol-, Ch+/Ch-). Wszystko działa (nośna generowana z PWM na Timer0, wybudzanie przerwaniami na pinach, kody w pamięci programu, duże oszczędzanie energii), ale chciałbym jeszcze bardziej udoskonalić oprogramowanie. :D Mianowicie, niezbędne opóźnienia...
attiny pcint przerwania pcint attiny pcint atmega
pomiar płyty laptopa brzęczenie włączeniu wzmacniacza bramy hormann programowanie
układ zastępczy tyrystora elektrotechnika kolos
MX25U12873F – programowanie CH347 V1, usuwanie blokady zapisu w AsProgrammer Pułapka p.cz. 10,7 MHz w głowicy UKF – obwód LC, strojenie, GFE-101, selektywność