$regfile "attiny2313.dat" $crystal = 1000000 Config Portb.4 = Output Dim I As Byte Config Timer0 = Timer , Prescale = 1024 On Timer0 Przerwanie 'Start Timer0' nie potrzebne Enable Timer0' zezwolenie na przerwanie timera Enable Interrupts Do Loop Przerwanie: Incr I If I > 10 Then Toggle Portb.4 I = 0 End If Return
A może wyłumaczyć mi ktoś tak jaśniej niż whelpie bascoma ;) co to jest ten prescaler i co on dzieli. Może tak po kolei jak twój program widnieje: 1. Jeżeli PORTB jest przeznaczony do obsługi LCD to nie konfiguruj go w ogóle w stylu jaki podałeś w pierwszym poście. Config Portb = &B11111111 : Portb = &B11111111 ===> źle!!! Może to powodowac zakłócenia...
Czekam na sugestie z góry dziękuje za pomoc;) Robisz totalnie złe założenie niestety. Timer sprzętowy działa bardzo dobrze i precyzyjnie. Nie może on przepełniać się w trybie normal wcześniej niż po 256 tyknięciach zegara ;) ... zatem przez złe założenia - jeszcze wyciągasz złe wnioski i nie w tym miejscu co trzeba szukasz błędu. A błąd polega na tym,...
juz to ustawilem i jest ok, ale i tak nie jest to dokładny stoper. Dzięki za rady :D
np. Nie da się. TImer0 może zliczać tylko z pinu PD4. I to z PinD.4 a nie PortD.4 ;) Można i z PinD.0, ale nawet przerwania żadnego do tego nie ma więc trzeba by programowo. A nawet jak przerwanie by było (mowa o przerwaniach INTx) to Timer tego nie zliczy. Trzeba by programowo zwiększać zawartość licznika Timera0, ale po cholerę. Jeżeli to ma być...
Chyba porypana. Ale spróbuj obliczyć ile zajmuje ustawienie portu (i jak) i jednak częstotliwość zegara/kwarcu. Wyżej zegara nie podskoczysz. ATtiny2313 chodzi do 16MHz. Jak pracujesz na fabrycznych ustawieniach 1MHz to i ASM nie pomoże. I w zasadzie czego spróbowałeś? Jak "nosave" to nie ma opóźnienia w odkładaniu/zdejmowaniu ze stosu. Bo tego nie...
Witam Jak wielu spotkałem się z problemem problemem kłopotliwej obsługi pilota z RC5. Po poszperaniu w necie wpadłem na http://www.elektroda.pl/rtvforum/topic20... ten temat. Jak się okazało wszystko na tym programie pracowało, ale nie zawsze. Kłopotem było napisanie programu "pod pilota". Oczywiście pochwała dla Sabotaz'a który problem "ruszył"...
Pusty blok jest dlatego, że utknąłem na konfiguracji Timer0. Jeśli chodzi o rejestry, to podejrzewałem, że jest tak, jak Kolega pisze. Wartość TCNT0 = 6; trzeba będzie wpisać do przerwania Timera Przy ustawieniach: [syntax=c] TCCR0A = (1 << CS01)|(CS00); // źródłem CLK, preskaler 64 TIMSK = (1<<TOIE0); //Przerwanie overflow (przepełnienie...
Tutaj mam tekst z Helpa Bascoma W czasie działania funkcji używany jest licznik TIMER0 i związane z nim przerwanie. Licznik ten jest służy do generacji wymaganych opóźnień podczas próbkowania sygnału. TIMER0 może być dalej używany przez program, lecz należy się liczyć z wynikłymi opóźnieniami, gdy wykonywana będzie funkcja GETRC5(). Jest tylko...
Witam, Mam problem z uruchomieniem dwóch timerów. Timer0 ma obsługiwać przerwanie pochodzące z INT1 (Signal1), natomiast Timer1 (Signal0) z INT0 (ale może być odwrotnie). Każdy z timerów ma wykryć impuls PWM większy od 1,5ms i zapalić lub zgasić diodę / diody. Po wgraniu poniższego kodu, diodki migają chaotycznie, nie ma żadnej reakcji na zmianę szerokości...
Szanowny Panie (at)tadeko9 , przepraszam za mój poprzedni, faktycznie szorstki, ton. Co złego to nie ja :D W pierwszym poście dołączył Pan taki kod: Dlatego dołączam od razu ten dla powyższego kodu. [syntax=avrasm]2: $regfile = "attiny2313.dat" 3: $crystal = 4000000 4: $hwstack = 40 5: $swstack = 16 6: $framesize = 32 7: 8: Config Portd.2 = Input :...
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"...
Witam.Mam bardzo banalny problem, z którym niestety nie mogę sobie poradzić, a mianowicie uruchomienie Timera0 w ATTiny 13.Oto mój program: #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include <avr/signal.h> #define TIMER0_START TIMSK0 |= (1<<TOIE0); TCCR0B |= (1<<CS00) |...
Witam To mój jeden z pierwszych programów. Procesor ma zmieniać co 1minute stan 2 portów na przeciwny lub ręcznie przyciskiem przez użytkownika. Niestety Timer nie załącza się a porty raz zmieniają sie tak jak mają a raz nie. Proszę o pomoc. Procesor to ATTiny45. $regfile = "attiny45.dat" $crystal = 4000000 Config Pinb.0 = Output 'wyjście...
Witam. [syntax=basic4gl]Ustaw F_CPU na 8000000 Hz 'Declarujemy zmienną np.Licz Dim Licz As Byte Config timer0 = Timer , Prescale = 256 Enable Interrupts Load Timer0 , 250 '--przerwanie będzie co 8ms On Timer0 Przerwanie 'W przerwaniu: Przerwanie: Load Timer0 , 250 Incr Licz If licz = 125 Then Licz = 0 Toggle Portb.6 '--- zmiana stanu co 1sek End If...
Witam serdecznie mam następujący problem. Wgrywam następujący kod do attiny: [syntax=c]#include <stdio.h> #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> SIGNAL(SIG_TIMER1_COMPA) { PORTB=0xff; _delay_ms(20); PORTB=0x00; } int main() { OCR1A = 31250; //Set OCR1A TCCR1B = (0 << WGM13)|(1 << WGM12)|(1...
Witam Kontynuuję zabawę z przerwaniami (Attiny13). Jednak mam pewne wątpliwości... Czy procedura jest ok? ISR(TIMER0_COMPA_vect)//chyba ok, ewentualnie: _COMPB { } Linkier daje ostrzeżenie... 'TIMER0_COMPA_vect' appears to be a misspelled signal handler Nie widzę błędu... ;\ Podczas symulacji dostaje błąd: AVR Simulator: Stack...
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 od timera T0 nie jest nigdy wywolywane :-( a oto fragment...
[syntax=c] #include <avr/interrupt.h> #include <avr/io.h> #include <util/delay.h> #define LED_DATA PORTB #define LED_SEG PORTD #define SEGA (1<<0) #define SEGB (1<<1) #define SEGC (1<<2) #define SEGD (1<<3) #define SEGE (1<<4) #define SEGF (1<<5) #define SEGG (1<<6) #define SEG_DP (1<<7)...
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, ale jeżeli dobrze wyczytałem w nocie katalogowej to timer0 w obu...
Nie mogę sobie poradzić z przerwaniami, nie widzę w którym miejscu zrobiłem błąd. Kompilator czepia się linii ISR(INT0_vect) i ISR(INT1_vect) [syntax=c] * main.c * * * generator impulsów bramkowych * * PB2, PB3, PB4 przyspieszenie impulsu * *PD6 wejście załączjące zgrzewanie * *PD0 steruje tyrystorami * *INT0 i INT1 impulsy 0 sieci * * Created on: 07-09-2012...
Witam, Mam problem z obsługą przerwań zewnętrznych uC Attiny2313. Do pinów INT0 i INT1 mam podpięte przyciski i za ich pomocą chciałbym załączać diody LED. Wykorzystuję generator wewnętrzny. Napisałem program, ale w ogóle nie reaguje na przyciski. Oto on: #include <avr\io.h> #include <avr\delay.h> #include <avr\signal.h> #include <avr\interrupt.h>...
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 taktowany jest zegarem 16MHz, dzielnik częstotliwości dla timera 1 ustawiłem...
Witam, Mam problem z obsługą timerów w Attiny2313. Korzystam ze środowiska Atnel studio 6. Przechodząc do rzeczy, napisałem sobie kiedyś program w Basomie, w którym odmierzałem czas za pomocą Timer0. Poniżej fragmenty kodu odpowiedzialne za konfigurację tego timera: [syntax=basic4gl] Config Timer0 = Timer , Prescale = 256 Load Timer0 = 45 On Timer0...
Jest to mój pierwszy program z użyciem timera i nie mam pojęcia dlaczego nie działa, wydaje mi się że wszystko jest ok a jednak po wgraniu do mikrokontrolera nie ma żadnej reakcji. $regfile "attiny2313.dat" $crystal = 1000000 Config Timer0 = Timer , Prescale = 1024 Dim T1 As Byte T1 = 0 Dim T2 As Byte T2 = 0 Dim T3 As Byte T3 = 0 On Timer0...
też niedawno zacząłem zabawę z uP ale naskrobałem coś takiego, jeśli źle, to mnie poprawcie. $regfile = "attiny2313def.dat" 'attiny2313 $crystal = 1000000 ' 1MHz Config Portb = Output Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.0 , Rs = Portb.2 Config Lcd = 16 * 2 'wyświetlacz 2 linie po...
Witam! Mam problem z timerami w języku C (w moim projekcie) dlatego zwracam się do Was o pomoc. Napiszę od początku, żeby przedstawić o co mi chodzi. Zbudowałem kiedyś sterownik taśmy led RGB oparty na mikroprocesorze attiny2313, w którym za pomocą jednego przycisku zmieniam podstawowe kolory na pasku ledowym (czerwony, zielony, niebieski) oraz ich...
Komentarze nie są dla nas- tylko dla Ciebie. $regfile = "attiny2313.dat" $crystal = 12000000 Config Timer1 = Timer , Prescale = 256 Config Timer0 = Counter , Edge = Falling Config Lcd = 16 * 2 Config Lcdpin = Pin , Db7 = Portb.7 , Db6 = Portb.6 , Db5 = Portb.5 , Db4 = Portb.4 , E = Portb.3 , Rs = Portb.2 Cursor Off Cls Timer0 = 0 Start Timer0...
Witam, Z racji ograniczonej ilości portów, zostałem zmuszony do multipleksowania dwóch wyświetlaczy LED 7 segmentowych poprzez rejestr 74HC595. Na początku dla testów napisałem krótki programik. Program działa, lecz ......... Myślę sobie: poczekam parę milisekund po każdej cyfrze. Wstawiłem w pętli głównej waitms 1 i jakie jest moje zdziwienie że po...
Do tej pory troszkę bawiłem się AT89C2051. Wykonałem pewien układzik który za pomocą Timera0 zliczał impulsy na wejściu T0 podczas 1sekundy którą odmierzałem Timerem1. Jako, że musiałem przeprogramować 51 do innych celów chciałbym go zastąpić Attiny2313 bo mam dwie sztuki. Zacząłem czytać książkę Dolińskiego aby wykonać program ale mam pewne problemy....
Witam, mam problem z obsługą RC5, chce zrobić obsługę przekaźników poprzez RC5. Może ktoś sprawdzić co jest nie tak??. Dopiero zaczynam programowanie więc proszę o wyrozumiałość. [syntax=c]#include <avr/io.h> #include <avr/interrupt.h> #define pierw_spraw 90 #define spraw 149 #define odebrano 0 #define zdekodowano 1 #define error 2 volatile...
Lysoleq -> ... poczekaj, ale ty po wejściu w przerwanie INT1 inicjujesz Timer0 prawda? czyli ma się wykonać za jakiś tam czas przerwanie no i wykonuje się. Czyli po rozkazie reti skacze do obsługi przerwania timera0. Przecież w pętli głównej masz tylko nop - więc co ten cały program ma robić? jak rozumiem czeka na zbocze opadające na INT1, w tym przerwaniu...
Timer0 i timer1 używają tego samego preskalera. Dlatego instrukcja prescale=64 zmienia warunki dla funkcji getrc5. Zajrzyj do noty katalogowej ATtiny2313 i nie pisz głupot więcej. Dodano po 14 Odmierz20ms1: 'funkcja obsługi serwa1 Timer1 = 65286 'przy wartosci 65286 timer1 bedzie generował przerwanie co 2ms Incr Licz2ms1 'zwiększ licznik zliczający...
Witam Czy ten program ma prawo działać na ATtiny2313 z wewnętrznym oscylatorem RC o wartości 8MHz jako sterownik silnika bipolarnego, gdyż po podłączeniu do l293d sterownik się strasznie grzeje a silnik delikatnie przekręci się o jeden krok a następnie przerwa i jeden krok do tyłu. [syntax=c]/* #include <avr/io.h> #include <avr/interrupt.h>...
Nie analizuję jak to działa, ale zmieniony tak jak pisałem kompiluje się bez problemu. Jeśli poniższego listingu nie potrafisz skompilować to znaczy że używasz jakiejś archaicznej wersji i nie da się pomóc dopóki nie przesiądziesz się na nowszą. WDVALUE=16,32,64,128,256,512,1024,2048,4... Zawsze możesz wpisać mniejszą wartość dla Config Watchdog.....
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...
Witam Zrobiłem ten termometr: http://mirley.firlej.org/termometr_domow... Jednak programowanie AT89C2051 nie należy do najłatwiejszych, więc chciałbym prosić o pomoc w "przerobieniu" tego kodu pod kontroler ATTINY2313. Zrobiłem już programator pod ATTINY2313 więc to byłaby najprostsza droga. Proszę o pomoc. Oto kod pod AT89C2051:...
Witam, taki kod ja kiedyś używałem, spróbuj go sobie zaadaptować. [syntax=basic4gl]Dim Rled As Byte , Gled As Byte , Bled As Byte Dim Licznik As Byte Dim Flaga As Bit , Ctrled As Bit Dim N As Byte , Pomoc As Byte , Prz1 As Byte , Prz2 As Byte Dim Dziel As Word , Dziel2 As Word , Szybkosc As Word Enable Interrupts Config Timer0 = Timer , Gate = Internal...
Witajcie! W sieci znalazłem projekt lampki RGB sterowanej z pilota, projekt pochodzi z tej strony. Postanowiłem jednak z budować do tego swój pilot, a wybór padł na SAA3010: (na schemacie zamiast rezonatora jest kondensator, proszę się tym nie sugerować.) http://obrazki.elektroda.pl/9020128600_1... Pilot jest raczej sprawny i działa...
Witam. Mam następujący problem... Chce zrobić sobie na uP attiny2313 (płytka startowa avt3500) stoper i timer w jednym, z dokładnością do dziesiątych części sekundy, na LED. Dołączyłem do wyjść goldpin mojej płytki dodatkowe 2 przyciski bistabilne, pod porty PIND.2 oraz PIND.3, sterują one wyborem stoper/timer oraz gdy je "odklikujemy" zerują stan licznika....
Witam prosiłbym o kompilację programu ponieważ kompilator pod windows 7 wariuje. Prosiłbym o podesłanie kodu na adrian359(at)poczta.onet.pl [syntax=basic4gl] '************* Konfiguracja uC ***************** '***************************************... $regfile = "attiny2313.dat" $crystal = 8000000 'internal RC oscilator Config Portb = &B11111111...
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...
Witam, Coś ostatnio mało ludzi odpowiada mi na pytania w Bascomie, więc postarałem się napisać swój program w C. Liczę więc na pomoc specjalistów od GCC ;) chciałbym zrobić pilot IR do mojego aparatu fotograficznego Olympus. Ze stronki lirc sprawdziłem sobie co i jak ma być dla pilota RM-1. Powiem nawet że chyba rok temu zrobiłem to w assemblerze i...
Jako, że od niedawna sam uczę się dopiero C, to proszę bardzo poniżej, najpierw kod do odbiornika RC5. Sprawdzony, krótki i odporny na zakłócenia oraz kody z innych pilotów - działa wyśmienicie i w ciekawy sposób wykorzystuje bit TOGGLE: // zmienne do obsługi kodów IR w standardzie RC5 volatile uint8_t address; // adres RC5 volatile uint8_t command;...
Witam, na początek dodam że dopiero zaczynam z Bascom'em. Mam problem w przepisaniu programu z ATTINY2313 na ATMEGA8. Oryginalną wersję zamieszczam poniżej: '************* Konfiguracja uC ***************** '***************************************... $regfile = "attiny2313.dat" $crystal = 16000000 Config Portb = &B11111111 : Portb...
To wywal przed while lub do init() , nie ma sensu aby procesor to ustawiał milion razy na sekundę : Natomiast kod w przerwaniu zmień na : PORTB = (0<<PB1); jest równoważny PORTB = 0; , więc zeruje również PB0 . Operatory logiczne proszę się zaprzyjaźnić... ;) Ostatecznie proponuję takie kodzio:[syntax=C]#include <avr/io.h> #include <avr/interrupt.h>...
Dawno Bascoma nie używałem ale to będzie coś takiego: On int0 czas 'przerwanie zewnetrze (wejście impulsów) do czestotliwosc=1/czas 'obliczenie czestotliwosci z czasu pomiedzy impulasmi loop czas: stop timer0 'zatrzymaj timer czas=timer0 'odczyt z timera timer0=0 'wyzerowanie timera start timer0 'ponowne uruchomienie timera return Oczywiście...
Lecz zrobiłem sobie testy: Że na wyświetlaczu wyświetlam wartość B, i jak się okazało, jeśli zamienię Config Timer0 = Timer , Prescale = 1 na Config Timer0 = Timer , Prescale = 8 to wartość B zmienia się szybciej! Dlaczego tak się dzieje? Może dlatego że jest jest prescale =1 to przerwanie jest wykonywane co 32us czyli w czasie tego waitams 20 trafia...
Masz błędny kod. Jak chcesz by program działał jak trzeba to musisz wiedzieć co robi każda linijka. Włączasz przerwanie od przepełnienia timera0, a nie maż funkcji do jego obsługi. Deklarujesz funkcję do obsługi przerwania zewnętrznego, a nie masz funkcji obsługi i nie zezwalasz na to przerwanie. Na moje oko to po uruchomieniu timera procesor się zresetuje...
Spróbuj tego: $regfile "attiny2313.dat" $crystal = 4000000 Config Portd = &B11111100 Portd = &B00000011 Config Lcd = 16 * 2 Config Lcdpin = Pin , E = Portb.1 , Rs = Portb.2 , Db7 = Portb.7 , Db6 = Portb.6 , Db5 = Portb.5 , Db4 = Portb.4 Config Timer0 = Timer , Prescale = 8 Enable Interrupts Enable Timer0 On Timer0 Przerwanie Dim Czas_cyklu...
[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...
Mam nadzieję że to nie pójdzie do kosza: $crystal = 4000000 '4MHz $regfile = "attiny2313.dat" Config 1wire = Portd.5 Config Timer0 = Timer , Prescale = 64 On Timer0 Przerwanie0 Enable Interrupts Enable Timer0 Start Timer0 Porta = 0 Portb = 0 Portd = 0 Config Porta = 0 Config Portb = 0 Config Portd = 0 '**************************** 'Zmienne...
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ż udało mi się przerobić na AVR (ATtiny2313) 'przerobiłem, kompiluje...
Poprawiłem błędy, w tym ten związany z częstotliwością a nie z okresem sygnału. Dodałem zmienną typu Single Czestotliwosc, do obliczeń zmiennoprzecinkowych. W Timer0 wpisuję na starcie 131, Config Int0=Rising. Czy dobrze to robię, czy we właściwych miejscach kodu? Pytania: Jak zaokrąglić wynik ze zmiennej Czestotliwosc do dwóch miejsc po przecinku?...
Zdaje się, że przerwanie timera TIMER0_COMPA w trybie CTC pojawia się co (OCR0A + 1) impulsów, bo przecież licznik liczy od 0, więc aby uzyskać przerwanie co 100 impulsów należałoby ustawić OCR0A na wartość 99.
Tak się zastanawiam... mając przerwanie ISR(TIMER0_COMP A _vect) ustawiam preskaler na 1024 następująco: TCCR0B |= (1<<CS02)|(1<<CS00); Dlaczego nie jest tak: TCCR0 A |= (1<<CS02)|(1<<CS00); ? Bo gdy teraz będę chciał skonfigurować TIMER0_COMP B _vect do innych celów to preskaler jest ten sam?
No to już dobrze :) Dodaj te linie definiujące stos z wcześniejszego posta. Może to one są winne. Którą masz wersję bascoma ? EDIT: Jak byś chciał go z 12Mhz pędzić to zmień linie: [syntax=basic4gl]$regfile = "attiny2313.dat" $crystal = 12000000 Config Timer0 = Timer , Prescale = 64 Const Przerwanie = 219 '12MHz/64/37=5068Hz /32 poziomy PWM = ok 158Hz(PWM)...
W takim układzie uprościłbym kod do niezbędnego minimum w celu sprawdzenia multipleksowania: [syntax=c]#define __AVR_ATtiny2313__ #include <avr/io.h> #include <avr/interrupt.h> void multiplex();// multipleksowanie volatile uint8_t czas[4] = { 0b00101000, 0b00110100, 0b00100010, 0b10000001 }; ISR(TIMER0_COMPA_vect) { multiplex(); } int main(void)...
Po co stosować tu przerwanie? Kardynalny błąd to stosowanie polceceń opóźnień w przerwaniach. W tym programie problem tkwi w: If Przycisk = 0 Then Waitms 100 If Przycisk = 0 Then Incr Sekwencja If Sekwencja = 0 Then Incr Sekwencja If Sekwencja = 4 Then Sekwencja = 1 End If End If End If End If Popraw na: If Przycisk = 0 Then Waitms 100 If Przycisk =...
Wklejam kod. [syntax=basic4gl]'ATtiny2313 mruga dioda ustawienie portów. $regfile = "ATtiny2313.dat" $crystal = 10000000 Config Lcd = 16 * 1a Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , Rs = Portd.4 , E = Portd.5 Config Portd.6 = Output 'podłączenie diody pin nr 11 Config Timer0 = Timer , Prescale = 1024 Dim...
Napisałem kod generowania nośnej, na oscyloskopie okres to 37us więc częstotliwość to 26kHz: (próbowałem już na różne sposoby ale nie dało się zwiększyć) $regfile = "attiny2313.dat" $crystal = 8000000 Config Pinb.3 = Output Config Timer0 = Timer , Prescale = 1 dim takt as integer Enable Interrupts : Enable Timer0 : On Timer0 przerwanie...
Witam, tak jak napisałem w temacie - piszę programowy pwm na attiny2313. Program działa w oparciu o przerwania od przepełnienia timer0. Timer0 ustawiam w normal mode. Fusebity daję na wewnętrzny oscylator 8MHz (bez dzielenia). Z moich obliczeń wynika, że przy rozdzielczości 256 powinienem uzyskać częstotliwość 8MHz/256 = 30kHz (ok), a mierzona oscyloskopem...
Bascom mnie odrzuca, ale o ile się nie mylę to wykorzystujesz przerwanie z przepełnienia timera. Prescaler dajesz 256, timer jest 8-bitowy, więc daje przerwanie raz na 65536 cykli, czyli zaledwie 122Hz. I to jeszcze dzielisz na poszczególne wyświetlacze - musi mrugać. Zwiększ szybkość odświeżania, np. poprzez zmniejszenie prescalera. Dopiero przy ok....
przerwanie timer0 timer0 attiny2313 attiny2313 timer0
c20ne schemat częstotliwości radiowe policja extreme graphics
Resetowanie amplitunera Pioneer SC-LX801 - instrukcje krok po kroku Dodanie dźwięku powitalnego w Motorola Moto G54 5G