da się, da. choć na AT89C2051 to nie najlepiej działa (i zresztą wszystkich 51 bez PWM), ale ja (kiedyś) napisałem procedurki które pozwalają na płynną regulację silnika SPS: W C: unsigned char licz,predkosc; #define silnikP10 #define wlacz 1 #define wylacz 0 void pwm (void) interrupt 1 { if (licz<predkosc) silnik=wlacz; else silnik=wylacz; if (++licz>64)...
Witaj , najpierw musisz podać kompilatorowi z jakiego mikrokontrolera bedziesz korzystał. tj. attiny26. .include "tn26def.inc" ;nastepnie okreslasz wektroy przerwan .cseg .org0x00 rjmpstart ; skok do startu .org0x01 reti .org0x02 reti .org0x03 reti .org0x04 reti .org0x05 reti .org0x06 reti .org0x07 reti .org0x08 reti .org0x09 reti .org0x0a reti .org0x0b...
problem jest nastepujacy. dosc czesto wiesza sie router Asmax i odcina mi dostep do internetu. wystarczy potem wylaczyc, wlaczyc spowrotem do kontaktu i wszystko dziala. niestety jest on u sasiada i nie zawsze moge ta procedure wykonac. widzialem kiedys na allegro urzadzanie ktore na krotki czas resetuje sieciowe urzadzenie bez zrywania polaczenia....
Masz w avr-gcc. Dla innego kwarcu, lub innej czestotliwosci przerwan inny preskaler lub wartość OCR1A. #include <avr/interrupt.h> #include <avr/io.h> ISR(SIG_OUTPUT_COMPARE1A) { /* Kod przerwania Timera 1. Wywolywane co 10ms */ } void init(void) { /* Timer 1: ** Tryb CTC (zliczanie do wartosci TOP i...
Próbuję zrozumieć zasadę działania timera0 w normalnym trybie pracy, ale niestety mój kod i sposób rozumowania najprawdopodobniej jest zły, ponieważ dioda nie miga. W związku z tym chciałbym poprosić kogoś o weryfikację kodu oraz mojego rozumowania, bo może coś robię źle. W kodzie zamieściłem stosowne komentarze więc nie będę ich dublował. Częstotliwość...
To nie moze byc to. Dane chcialem odbierac z predkoscia 19,2kbps, czestotliwosc procesora to 8MHz co daje mozliwosc wykonania 416 cykli na bit zeby nie bylo opoznien. Moje funkcje potrzebuja 40-80 operacji na bit wiec bedzie sie wyrabial i jeszcze mu zostanie mocy przerobowych. Cala operacja odbioru 20B po SPI trwa 1,5ms a transmisji RF 8ms. Co wiecej,...
Witam. Dzieki uzytkownikom tego forum zdążyłem, w moim odczuciu, zrobić postępy w zrozumieniu przerwań. Wiem już o tym dlaczego nie stosować funkcji delay w przerwaniu ze względu na niedokładność odliczanego przez nią czasu i ryzyko gubienia przerwań i zamiast tego używać timera do opóźnień. Próbuję jeszcze zapanować nad jedną rzeczą ale mi się nie...
;Program realizujacy 6 PWM 8-bit na liniach PB50 ;Licznik T2 generuje stala czestotliwosc przerwan, ;w ktorych obslugiwane sa PWM-y ;W programie glownym mozna robic cokolwiek, ;np. obslugiwac ADC lub RS ;Rejestry R1 do R6 zawieraja wartosci 0..255 dla PWM1 do PWM6 .ORG0 RJMPRESET ;---------------------------------------...
Można, a w BASCOM-ie przerwanie od portu szeregowego nazywa się "serial" i to jego obsługą musisz się zainteresować. Przykładowy kod w BASCOM-ie 51: $crystal = 11059200 ' czestotliwosc kwarcu $baud = 2400 ' predkosc transmisji Dim X As Byte ' deklaracja zmiennych Enable Interrupts ' wlaczenie przerwan Enable Serial ' wlaczenie przerwania portu RS232...
Prosze bardzo o to progrma #include <avr/interrupt.h> #include <avr/delay.h> volatile int counter=0; int serwo1, serwo2, serwo3, serwo4, serwo5, serwo6, serwo7, serwo8; //volatile unit8_t flagi; unsigned char liczt0; ISR(SIG_OVERFLOW0) { TIMSK |= _BV(TOIE2); TCNT0=200; counter++; } int main(void) {...
0,000032s czyli 31250 Hz Dokładnie kolego niveasoft . Przy preskalerze ustawionym na 1 i w przerwaniu timer1=39729 przerwanie wystąpi co 0,00819200 s czyli tyle ile wyliczył sobie dla timera0 w pierwszym poście ( urzywając polecenia load) czyli skoro przerwanie bedzie co 0,008 to przy pwm 100 krokow daje .. czestotliwosc 1Hz. Sami nie wiecie co piszecie....
Eh ten rs-232 + przerwania to juz mnie o bóle głowy przyprawia. Mam programik: $crystal = 11059200 ' czestotliwosc kwarcu $baud = 1200 ' predkosc transmisji Dim X As Byte , Znak As Byte Enable Interrupts ' wlaczenie przerwan Enable Serial ' wlaczenie przerwania portu RS232 On Serial Port ' na przerwanie z portu wykonaj procedure "port" Do ' poczatek...
Dziekuje bardzo za odpowiedzi. Zdaje sobie sprawe ze z samym potencjometrm moglbym miec problemy z ustaleniem czestotliwosci dltego chce to zrobic tak ze za pomoca potencjometru bedzie zmienialo sie czestotliwosc o pewien krok np. co 10Hz natomiast za pomoca dwoch klawiszy bedzie mozna zmieniac czestotliwosc w gore lub dol o 1Hz. Konwersje chce zrobic...
Nie mam takiego sprzętu. Napisałem coś takiego: [syntax=c] volatile uint8_t i=0; // LICZBA PRZERWAN volatile uint8_t freq=0; // CZESTOTLIWOSC volatile uint8_t pr=0; // ZMIENNA USTAWIANA CO PODSTAWE CZASU 0,025 S int main(void) { lcd_init(); // INICJALIZACJA WYSW. sei();// GLOBALNE PRZERWANIA TCCR2=(1<<WGM21)|(1<<CS22)|(...
ATmega48 ma o polowe mniejsza pamiec SRAM, FLASH i EEPROM, 48 obsluguje do 5 przerwan zewnetrznych a 8 do 2. ATmega8 ma max czestotliwosc 16MHz a ATmega48 do 20MHz, co jeszcze... ATmega48 obsluguje DebugWire co jest na prawde fajnym bajerem bo do programowania potrzebny ci jest tylko pin RESET ale tez taki programator kosztuje swoje;) okolo 1500zl.
SETB P3_2 wykonuje sie w 12cykli, a wiec teoretycznie mozna wykonac 2 takie instrukcje na mikrosekunde. Jesli pierwsza ustawia bit, to droga go kasuje i to zajmuje 1 mikrosekunde. Stad ( i tu korekta ) max. czestotliwosc przebiegu bedzie 1MHz a nie 2Mhz. Przepraszam za przeoczenie i dzieki za wskazanie pomylki. Oczywiscie dla MOV P1,#0FFH bedzie to...
Witam Próbuje wykonać sterowanie dla projektu: https://www.elektroda.pl/rtvforum/topic3... Ogólnie tak: Mam ESP32, które jest jednostka główną Jest Arduino mega które przesyła dane co 2ms przez Serial2 Jest tez Aplikacja na PC, która komunikuje się z ESP32 poprzez Serial Problemem jest to, że jak na aplikacji wcisne dany przycisk, to aplikacja...
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?...
Początek zabawy, i bliski jestem stwierdzenia, że to nie dla mnie. A więc, albo ktoś podpowie, albo pogryzę tego procka. Problem jest następujący: Po przerwaniu, program zapala leda i wychodzi z pętli WHILE (zaczyna main()) czyli mój LED zgaszony. Lub bez przerwania, prog. wchodzi do petli WHILE opuszcza ją i zaczyna od main(). czyli na terminalu widzę...
Cel instrukcji while(1); na końcu programu głównego rozumiem. Co myślisz na temat kodu poniżej, który ma zmieniać częstotliwości na poszczególnych pinach na skutek "1" na P1.0 ? Czestotliwosc zegarow dla wykonania przerwan nie jest jeszcze dobrana. #include <intrinsics.h> #include <msp430x20x3.h> unsigned int counter1, counter2, counter3,...
Witam. Napisałem program do pomiaru napięcia i pradu zmiennego, sygnaly doprowadzone na nozki ADC6 i ADC7, następnie chcęje spróbkować w przerwaniach z timera w trybie CTC (po64 próbki każdy), zatrzymaćna chwile przerwania, dokonać obliczeń, wyświetlić na lcd i "od nowa". Napisałem program, lecz nic nie oblicza prosiłbym o pomoc. Przepraszam z góry...
A oto działający kod dla bufora 128 bajtów (można zrobic mniejszy, 64 dziala ale tylko przy Clockrate = 4 , Spsr.0 = 1 i samplu do 16kHz) zależny od prędkości z jaką odczytujemy dane po Spi z karty, im wolniej tym bufor musi byc wiekszy, zależy też od częstotliwości próbkowania pliku dźwiękowego, im szybsze tym bufor większy. Wzorowałem sie na przykładzie...
Micron (Crucial) 128 MB - (DIMM 1) - PC100-222-620 MT16LSDT1664AG-10EC7 Ramos 256MB - (DIMM 2) - RM56S261TA-13AC SDRAM 256MB, Sync, 133Mhz, CL3 Vigour - (DIMM 3) - L0110 - 128MB (PC133) Wszystkie są dwustronne, tylko Micron osobno testowany i razem pokazywał pełny rozmiar. Dwa pozostałę o połowę. Razem pokazywało w systemie 320 MB RAM. W tle Modecom...
Witam Probuje zmienic satan pinu z okresem 1Mhz. Niestety maksymalnie co uda mi sie wyciagnac to 526kHz przy preskaler=1 okres=1. Jak moge szybciej przemiatac pinem? zegar rozbujany do 72Mhz , pin ustawiony na 50MHz. reszta ustawien : [syntax=c] TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; //Konfiguracja licznika TIM 1 //Ustawienia taktowania i trybu...
Na wejsciu INT0 podlaczony jest kontaktron z masa z wiatromierza, jak dopisac w programie zeby procek zliczal impulsy i przeliczyl na predkosc wiatru.Do procesora na porty P1.6 i P1.7 jest tez podlaczony czujnik temperatury na DS1621, zeby mozna bylo obliczyc teperature odczuwalna z tych dwoch parametrow i gdzie to obliczyc ? wszystko jest wyswietlane...
No tak........ Rozumiem ze chcesz mierzyc element C wpiety do U1. Jak w temacie to miernik konduktancji nie impedancji. w zlacze BNC bedzie wpieta sonda platynowa do pomiaru konduktancji cieczy pojemnosci tej sondy nie uwzgledniam. Odrazu powiem ze to nie wypali. Lepszy by byl techniczny pomiar impedancji. Tz. Generator przed opampem wpiety na stala...
fox525 przepraszam bardzo, ale zle przeczytalem. Bylem swiecie przekonany ze nacisniecie ma rozpoczac zliczanie od nowa. Ups. Wielka pmylka. W takim razie w miejscu przerwania powinno byc tylko: P3_2_int: Incr Ilosc_sek Return Co do Load timer to mi sie wydaje ze ma byc 250. Czestotliwosc 12000000Hz dzielona jest sprzetowo na 12 co daje wynik 1000000Hz....
UART, 2xAtmega8 jak to zdzielac ?? Witam serdecznie i prosze o pomoc Pracuje nad moja praca inżynierska tj robotem czteronoznym kroczącym. Posiadam zakupiony serwokontroler SK18 schemat poniżej http://obrazki.elektroda.net/31_11995688... teraz na schemacie widac zlacze serial i ono łaczy sie z RxD i masą ( nie ma polaczenia z Txd ) Chcialbym...
Mozna przez petle for, mozna zrobic funkcje w ktorej jest okreslona liczba nop`ow, jesli chcesz dokladnie odmierzac czas (dla 1w to konieczne) to musisz podejrzec kod w asemblerze i policzyc dokladnie cykle. Ze swojej strony moge dorzucic procedury opoznien dla 24MHz i procka gdzie czestotliwosc oscylatora nie jest dzielona przez 12 tylko przez 1. ///////////PROCEDURY...
Zmodyfikowałem listing ze strony http://mikrokontrolery.net/avr_c_07.htm. Przerobiłem go, żeby odliczał do 2 min do tyłu.Przy 1 minucie zaczyna pokazywać od 59 sek w dół.W debugerze AVR studio wszystko działa, a na Atmega8 nie.Pomóżcie co robię nie tak.Do tego LED mruga :( Dodam jeszcze ,że chodzi mi to na 1Mhz wewnętrznym atmegi. //#define F_CPU 1000000L...
Cześć, Próbuję po kawałku postawić robota, opartego o NXP LPC2106. Aktualnie mam działające PWM oraz UART ale "zawiesiłem" się na komunikacji z ADC MCP3008 za pośrednictwem SPI. Obecnie program powinien pobierać wartość napięcia z kanału 7 i przesyłać ją przez UART, jednak nic nie otrzymuję (poza znakiem nowej linii). Proszę o sugestie, co mógłbym jeszcze...
Skoro już jesteśmy przy konstruktywnych krytykach, to i ja dodam kilka uwag: 1) Schemat jest bardzo słabo czytelny. Staraj się stosować Vcc i GND, bo np. okolice resetu wyglądają na pierwszy rzut oka co najmniej dziwnie. Warto rozdzielić sekcje zasilania i głównego obwodu. Oto kawałek jakiegoś mojego projektu - sam powiedz, czy nie jest bardziej czytelnie?...
Witam. Mam następujący problem z niedziałającym TWI. Mam kod na atmegę w C. /* Czujnik ultradzwiekowy sterowany z magistrali i2c C= 2010 Grzegorz Eliszewski grzegorz(at)eliszewski.pl esio.eu */ #define F_CPU 12000000UL // czestotliwosc kwarcu 12MHz #include <avr/io.h> #include <util/delay.h> // obsluga opoznien #include <compat/twi.h>...
Mam problem z takim programikiem, nie wiem co robię źle. Patrzyłem po innych programach i jakoś nie widziałem żeby ktoś definiował łańcuchy przed ich wywołaniem. AVR studio daje taki komunikat: error: 'tx_dupa' undeclared (first use in this function) tyczy się on tego polecenia w pętli while LCD_TXT((prog_char*)tx_dupa) #include <avr/io.h> #include...
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 jest przez ATTiny13A. Która wysyła sygnał na piny PD2 i PD3...
Witam, znalazłem na forum podobno działający kod do obsługi TWI. Ale u mnie jest problem z jej obsługą. Wysyłanie bajtów nie powoduje błędów, ale za to jak chce odczytać jakąś wartość to program się zatrzymuje w miejscu (zaznaczone w kodzie do którego miejsca dochodzi). Dodam że INT z RTC działa prawidłowo, układ nie wydaje mi się żeby był wadliwy....
Witajcie, siedzę i szukam błędu w bibliotekach do obsługi NRF24L01. Skopiowałem je z biblioteki, którą wykorzystuje w ATmega8. Działa nawet dobrze tam, niestety na STM32F0DISCOVERY już nie chce. Będę bardzo wdzięczny za pomoc. To najpierw kody, które wyrażają więcej niż tysiąc słów ;) : main.c http://obrazki.elektroda.pl/4732813300_1...
Podłącze się do tematu bo coś nie idzie mi 1wire. Na reset układ reaguje prawidłowo. Chyba jednak coś sknociłem przy odczycie lub zapisie bajtu, cały czas dostaje dziwne (15, 143, 128, 248, etc) wartości MSB i LSB. Zwarcie lini do masy zwraca same 0, do vcc lub pozostawienie wiszącego: same 255 Dalass wydaje się reagować na zmiane temperatury. Przeliczania...
Poniżej masz wczesną wersję programu dla procesora U2 z zestawu [url=http://ep.com.pl/files/1903.pdf]AVT... [syntax=asm] ;***************************************... ;* Program syntezera DDS ;* ;* fout = freqHML(24bit) * 16MHz/takt(9) / 2^(8+8+8) ;***************************************...
(...)Mam jednak pytanie, czy można to zrobić w jakiś inny sposób, aby zmiana tempa zależała tylko od zmiennej speed ? Ten sposób jest jak najbardziej odpowiedni. Mam tu następujące sugestie: - poprawić dokładność ustawiania tempa poprzez zwiększenie częstotliwości przerwań (ustawienie preskalera na 1), - przeliczać zadaną wartość tempa w bpm na wartość...
Nie umiem arduino i zrobiłem na rejestrach dla UNO z megą 328/328p. Powinno działać. Dla mega wystarczy zmienić nazwy rejestrów w funkcjach startujących i zatrzymujących timer. Obsługa opóźnienia zrealizowana na timerze pierwszym. [syntax=c]#include <avr/interrupt.h> volatile int timer_cnt=0; // tutaj definiujesz co po jakim czasie przekaznik...
Trochę długo to trwało, bo miałem na głowie parę innych spraw, ale w końcu coś wyszło :) Po paru próbach przeróbki rzeczonej funkcji stwierdziłem, że nie ma co :D Zrobiłem przerwanie od timera co 0.5 sekundy, w najgorszym przypadku sterowany silnik będzie w zwarciu przez 0.5 sekundy, co raczej nie powinno mu wyrządzić krzywdy, ewentualnie później zmniejszę...
może Timer2.initialize Nie można tak, nie ma klasy Timer2. Poza tym od razu radzę zrezygnować z biblioteki TimerOne przy używaniu więcej niż jednego timera. Zamiast tego samemu można napisać konfiguracje timerów i wektory ich przerwań. Oto kod demonstrujący jak to zrobić. Powinno migać diodą i niezależnie wysyłać napis. Twoim zadaniem jest teraz dobrać...
Dzieki za propozycje Pawle. Nie wiem czy dobrze rozumuje ... Ta talblice sinusa tworze w pamieci RAM i kazda faza ma inny wskaznik w danym przerwaniu. Jakbym chcial uzyskac wzor na regulowana czestotliwosc to moze on miec postac: ? czestotliwosc_wy=240/fw*okres_przerwan przy czym fw-deklarowana wartosc czestotliwosci z klawiatury Dlaczego poczatkowe...
Musisz zliczyc 60000000/4 impulsow, standardowo perfyeria dzialaja wlasnie z czestotliwoscia systemu/4, mozesz to oczywiscie zmienic w odpowiednim rejestrze.
Oczywiście, że lepiej procesor poradzi sobie (bez dodatkowych przetworników) z sygnałem częstotliwościowym. '51 ma w sobie dwa timery 16-bitowe które mogą pracować jako liczniki lub czasomierze. Do zliczania impulsów użyj jednego timera pracującego jako licznik, a drugiego użyj jako czasomierza do generowania przerwań w których odczytywana będzie wartość...
Strasznie mieszasz, zmieniając te systemy liczbowe. Powinno być: [syntax=basic4gl] 'Wyjscie 1Hz I2cstart I2cwbyte &HD0 I2cwbyte &H07 ' zapis do adresu 07H I2cwbyte &H10 ' ustawienie czestotliwosci SQW/OUT I2cstop [/syntax]
Zastanów się ile rzeczy robisz w przerwaniu a ręcznie generujesz PWM. Kupa warunków, czytanie ADC i inne głupoty - setki jeśli nie więcej taktów + wolne pomiary ADC. Tak że w życiu się nie wyrobisz. Dodatkowo startujesz konwersję, ale nie czeksz na jej koniec - tak że wynik jest całkowicie losowy. A jak byś czekał to byłoby to jeszcze wolniej. Zrób...
Kilka pytań i spraw, ktore być mogą okazać się pomocne: Z wartości przeładowania T0 (D8EF) i faktu że przerwanie chodzi 100 razy/sek domyślam sie ze używasz kwarcu 12MHz . Jednak jesli ma to byc równo 100Hz to zauważ że podana u ciebie wartosć początkowa jest za mała o 1, bo powinno byc: T0pocz = FFFFh - (Fxtal / 12 / Fto) + 1 = D8F0h (a nie D8EFh)...
rozne serwa roznie moga dzialac. Nigdzie nie widzialem, zeby ktos okreslil dokladna czestotliwosc z jaka to ma byc robione.. zazwyczaj jest ok. 50Hz. Drobne roznice typu kilka Hz (czyli kilka ms wywolywanie przerwania) nie powinny miec zadnego wplywu na serwo. Problem moze sie zaczac jak bedziesz mial dlugie funkcje wywolywane przerwaniami... ale na...
priorytet przerwan przycisk przerwan wektory przerwan
instalacja windows toshiba satellite iloczyn logiczny wyjść włącza wyłącza grundig
samsung qe55q60 samsung qe55q60
Wymiana kolektora ssącego Audi Q5 Quattro 2.0 TDI 170KM 2009 – objawy, części, procedura Jak podświetlić włączniki w samochodzie - diody LED i instalacja