Rozumiem, że jeżeli tablica zawiera {1,2,3,4}, to po przesunięciu cyklicznym ma zawierać {4,3,2,1}, a tab. {1,2,3,4,5}: {5,4,3,2,1}. Przedstawiam kod napisany pod Dev-C++. #include <iostream> #include <conio.h> #include <math.h> using namespace std; main() { const int N=7; int t[N]={1,2,3,4,5,6,7 }; int...
DEC 1 jest w złym miejscu. Przesuń przed *D i będzie OK.
Dlaczego przesuwasz w drawgraph a nie odrazu w ifie? Pierwsze powinieneś przesunąć a potem dodać na koniec.
Daj nowy region pamięci tylko na przerwania, Flash zaczniesz wyżej. Ja dałbym nawet nowy region na ów eeprom. mógłby być programowany wartościami domyślnymi, albo po prostu przesuń operator . za przerwaniami, choć to mało eleganckie.
Z tym że uciekają mi tutaj 2 ostatnie zmienne, da się coś z tym zrobić? Przesuń tablice. Wypełnij reszte jakąś wartością(0,random). Wyśweitl tablice.
Stwórz tablicę za pomocą: Dim Zmienna(5) As Byte 'lub Word, Integer, Long, Single, Double... Przed zapisem aktualnej wartości do Zmienna(1), przesuń wartości z 1, 2, 3, 4 o jeden indeks (na 2, 3, 4, 5). Pamiętaj aby zrobić to tak, by nie "zamazać" wartości przy przesuwaniu. Potem zapisujesz aktualną wartość do Zmienna(1) i masz komplet, który...
Zauważ, że tutaj: int ile_znakow = 0; unsigned char *cT1 = new unsigned char [ile_znakow]; unsigned char *cT2 = new unsigned char [ile_znakow]; alokujesz puste tablce! ile_znakow = z1 - pocz; // wyznacza długość i 1 tablicy cT1 // tutaj przypisuje odpowiednie fragmenty do dynamicznych tablic char // i konwertuję na int cT1[ile_znakow+1]...
Cześć, co prawda nie mam żadnego doświadczenia z opisyswaną przez Ciebie kontrolką, ale ogólnie to proponuję zrobić tak: Nie odświeżaj calego obrazu, tylko kiedy krzyż pojawia się nad jakimś obszarem, zapamiętaj w tablicy, wartości kolorów pikseli znajdujących się "pod" krzyżem, kiedy użytkownik ruszy myszą i krzyż się przesunie, na starym miejscu pobytu...
Nigdzie nie ustawiasz ani x, ani y, poza początkiem, więc zawsze oba są 0. Po przyciśnięciu przycisku nadpisujesz wartość 1 w polu [0,0] zerem z pola obok. Przepisanie musisz mieć odwrotne, np.: [x+1,y] := [x,y], a potem przesunąć wartość x. Dodatkowo przycisku muszą Ci wygenerować impuls, żeby przesunięcie wykonało się tylko raz. Chyba, że chcesz,...
A skąd mamy wiedzieć jaką ma wartość ADC_CDR_DATA1 i ADC_CDR_DATA2? Bo jeśli ADC_CDR_DATA1 to 0xffff, a ADC_CDR_DATA2 to 0xffff0000, to wszystko by się zgadzało - samo maskowanie Ci nic nie da, musisz jeszcze przesunąć wynik. Z drugiej strony czemu po prostu nie użyjesz WŁAŚCIWEGO typu dla tablicy, czyli uint16_t a nie uint32_t?
Witam, jestem początkujący i mam pewien problem ;D Chciałem się zapytać czy da się mając tablicę Dwuwymiarową np. [syntax=php]$Tablica[1][1]=102; $Tablica[1][2]="wartosc 1"; $Tablica[1][3]="costam"; $Tablica[2][1]=130; $Tablica[2][2]="wartosc 2"; $Tablica[2][3]="asd"; $Tablica[3][1]=29; $Tablica[3][2]="wartosc 3"; $Tablica[3][3]="h3h3";[/syntax] itd......
Pewnie że sie da...kwestia jest taka że podział Ci sie przesunie (tak jak piszesz). Sprawdź jakie masz wartości elementów i odczytaj z tablic jaki Ci wyjdzie z tego podział...będziesz wiedział czy jest sens tego rozwiązania.
nie możesz przesuwać elementów tablicy. Musisz wziąć wskaźnik na typ słowny (dwa bajty) i przypisać do niego adres elementu tablicy (czyli de facto adres tablicy + przesunięcie) i dopiero na takiej wartości dokonać przesunięcia. Inaczej kompilator widzi, że pracujesz ze słowem i nie pozwoli wyjść "poza" element tablicy. Przesunięcie musi być zrealizowane...
Witam. Jestem początkujacy w programowaniu w środowisku Delphi więc potrzebuje Waszej pomocy w napisaniu prostego programu. Zadanie tak brzmi: Mając dane tablice A 1..n złożoną z integer dokonać przesunięcia cyklicznego jej wartości w prawo o k pozycje. Bardzo będe wdzięczny Wam za pomoc. Pozdrawiam.
Popełniasz błąd logiczny. Porównujesz zawartość tablicy do zera a przecież wyświetlane zero nie ma w tablicy wpisanej wartości zero a 192 jak sądzę. Możesz dopisać sobie na początku tablicy 0 i wtedy zadziała ale będziesz musiał przesunąć wskaźnik w starcie o jedną pozycję żeby wyświetlać o drugiego elementu w tablicy.
Prawidłowo - po wpisaniu '7' w AL (czyli dwóch ostatnich rejestru AX) znajdzie się 37h. Do BL przenosisz wiec po odjęciu 7. Tyle, że cały kod jest przygotowany do pracy z większymi wartościami, niż jedna cyfra, więc przesuniecie BL w prawo sprawi, że będzie tam 0. To pierwsza część. Dopiero kawałek dalej jeszcze raz przenosisz do BL z AL i tym razem...
Tak problem został rozwiązany. Zamiast tworzenia tablicy o wielkości 6*Ilość_znaków - w której są przetrzymywane wartości wierszy danej kolumny litery. Stworzyłem Tablicę 30-elementową do której wpisywana jest tylko jedna litera w jednej pętli (od 30-25 komórki tablicy - tak aby jej nie było widać na matrycy), w kolejnej pętli litera jest przesuwana...
Mam kilka pytań: 1. Mam tablicę aa[100][16] i czy da się do niej przepisać tablicę bb[1600] aby komórki zostały po kolei przepisane ? 2. Czy można przypisać przez wskaźnik tablicę, tak aby przesunąć komórki o jedną do przodu i do pierwszej wstawić jakąś wartość ? W asemblerze byłoby to proste, ale jak to zrobić w C ?
Po łebkach opisany algorytm... 1.Rysowanie wektora robisz tak a)rysujesz kreskę b)rysujesz trójkąt na końcu (pozycję obliczasz z wykorzystaniem zamiany wartości x/y c)wypełniasz trójkąt czarnym kolorem d)jeżeli jest włączona opcja przesuwania wektora to dodatkowo rysujesz 3 kólka (na początku, na środku do przesuwania całego wektora i na końcu) 2.Dane...
ok, dzięki, już oba śmigają.. a mam jeszcze jedno pytanie, tym razem odnośnie destruktora. gdy go nie dam jest ok, ale gdy jest zdefiniowany w klasie to dziwne rzeczy dzieją się po przeładowaniu operatora +. Tablica obiektu wynik jest wypełniona po części jakimiś śmieciami, pisze po części, bo od komórki [2][2] są już dobre wartości.. wygląda na to,...
Odnośnie wprowadzania liczb proponuję takie rozwiązanie: 1) Zdefiniuj ile cyfr możesz maksymalnie wprowadzić (np. 6). Stwórz zmienną tablicową typu uint8, o rozmiarze ilości cyfr, np. [syntax=c]uint8_t buffLiczba[6];[/syntax] Przy wejściu do trybu wprowadzania liczby zainicjalizuj tablicę wartościami, które nie reprezentują żadnej cyfry, np. 0xff; 2)...
Najprostsze rozwiązanie. Tworzysz w pamięci programu tablicę funkcji sinus (na 8 bitach). Tworzysz trzy wskażniki do danych w tablicy, przesunięte o 1/3 rozmiaru tablicy. Ze zmienną częstotliwością (zmienianą np. przerwaniem od timera) odczytujesz wartości z tablicy i wystawiasz na trzy porty. Zwiększasz wskaźniki. I to chyba cały algorytm
ale dla mnie wygląda podejrzanie wyrównywanie do całkowitej wyniku sin() i cos(). Tu wzorowałem się na kodzie ze strony http://www.dspguide.com/graphics/T_12_4.... . Tam wynik także jest zamieniany na wartość całkowitą poleceniem CINT - ogólnie obliczenia są prowadzone z użyciem zmiennych całkowitych. Chyba nie - nie wiem, co to za dialekt Basica,...
Dzięki za odzew. Niestety wiem tyle co podałem w pierwszym poście. Modbus jako taki nie jest dla mnie problemem (pisałem własne programy na avr z obsługą modbus rtu) Producent kotła nie przyznaje się do implementacji modbusa i nie udostępnia żadnych danych. Pytam czy ktoś próbował dogadać się z tym kotłem ? Może ktoś ma jakieś informacje o protokole...
Sorki, że milczałem do teraz, ale byłem "trochę" zajęty ;) W przykładzie wstawianie ramki poniżej tej, w której naciśnięto przycisk. Uwagi wymaga sposób wyliczania wartości zmiennych. W arkuszu ramka ma wysokość 4 wierszy, jest 1 wiersz nagłówkowy. Nr wierszy, gdzie nastąpi wstawianie nowych dla następnej ramki to: 6, 10, 14, itd Kluczowe jest wyliczenie...
Niestety tak prosto nie jest. Zasadniczo przy tych rozważaniach można operować na ułamkach albo na liczbach całkowitych. Jeśli mówimy o tych pierwszych, to wtedy Twój krok dX jest ułamkowy i całą filozofią jest wyznaczenie X0 - jako całkowitej wartości X - i X1 - jako wartości o 1 większej o X0 (z uwzględnieniem tego co stanie się na końcu tablicy)....
Faktycznie, nie zauważyłem działu ogólnego, przepraszam. Dzięki Dr_DEAD, jest to jakiś punkt odniesienia. Muszę mieć około 125000 wartości sinusa na przedziale (0, 2pi), cosinus da się przesunąć o pi/2, ale potrzebny jeszcze arcus sinus, więc tablica floatów musiałaby być rzędu 2MB, dla double 2x większa... Oczywiście to rozwiązanie oprócz szybkości...
to jest dobre miejsce żeby sensownie zacząć: http://www.mikesflightdeck.com/diy_airco... Co do drivera to robi sie to inaczej. Cztery rezystory podciągające cewki do plusa. Cztery tranzystory ściągające cewki do masy. Osiem rezystorów sterujących tranzystorami (połączenie szeregowe po dwa) Do tego dwa sprzętowe wyjścia PWM (jedno na jedną...
Może zrób sobie bufor na 320 próbek, oczywiście wartości nie będą inne niż 0-240, tablica bajtów wystarczy. Tak jak napisał tmf ma to być bufor kołowy, wpisujesz aktualną wartość na miejsce najstarszej w tablicy, w osobnej zmiennej trzymasz adres gdzie wstawiłeś ostatnią próbkę. W zależności od tego gdzie kończy się grafika osi pozostanie Ci np. obszar...
a chciał bym żeby to sie przesunęło w tablicy jak liczba mniejsza Musiałbyś "ręcznie" określać początkowy element znaku w tej tablicy (np. b + 1) w zależności od ilości cyfr liczby. Przed całą operacją tablica musiałaby być wypełniona spacjami. Funkcja utoa() nie jest standardową funkcją C, ale zakładam, że działa, jak itoa() ;) Można też użyć funkcji...
Sekundę, od początku: Zrobiłem tablicę która posiadało 180 elementów - wartości sinusa od 0-180. Przerobiłem je tak by pokrywały się z wypełnieniem w PWM. Skonfigurowałem sobie dwa Timery - TIM2 był skonfigurowany jako przerwanie w którym inkrementowana była wartość od 0-360. W przedziale od 0-180 zapisuję do TIM1->CCR1 wartości z tablicy sinusa. Uruchomienie...
16 (liczba nie cyfra) ponieważ temperatura odczytywana jest z dokładnością do 4 cyfr po przecinku, dlatego odczytaną wartość trzeba podzielić przez 16 (przesunąć o 4) Bd(1) = 1wread(9) tu do Bd jest wpisanych 9 bajtów ( liczba bajtów w nawiasie) odczytanych przez 1wread(9) z czego 2 pierwsze to temperatura OK pierwszą rzecz rozumiem Co do drugiej,...
dalej jest wolny, ponieważ dla każdego bajtu wykonywane jest 8 obiegów pętli Nie sprawdzałem wcześniej tego kodu w bibliotece - rzeczywiście, nie jest optymalny pod względem szybkości. No cóż, jak ktoś ma trochę czasu, to może podesłać szybką wersję liczenia CRC8. Wolna i tak jest potrzebna, do zainicjowania tablicy - jakkolwiek nie trzeba jej liczyć...
Wypowiedz oprę o tablicę w rozdzielcości 8bitów. Poprostu pobierasz wartość z tablicy odejmujesz zadaną wartość od pobranej próbki pamietając jeśli wynik bedzie "ujemny" zapisujesz wartść "0"(wartośc min półówki ujemnej to 0 a max półówki dodatniej to 255 - środek wypada na 127). Od razu wyjaśnię, że jeśli masz A/C 12 bitowy to nie licz na taką rozdzielczość...
Chyba coś namieszałeś w tablicy, domniemam, że początek był w sektorze 2048 (wyrównanie do 1MB), a jedynie coś lub ktoś przesunął go do sektora 2055 (przynajmniej tak sugeruje wpis Hidden sectors w sektorze 2055, bo jego wartość to 2048). Sprawdź czy twoje dane są na $Noname 05 (powinny tam być), jeśli tak, to będziemy działać dalej (wymagane będzie...
przecież jest wyraźnie napisane, tylko trzeba umieć czytać lub mieć chęć!! obojętnie dla ilu zmiennych zawsze po bokach musi być zapisane w kodzie graya, np w pionie 2bitowe w poziomie 3 bitowe wartości w kodzie Graya opisane powyżej , ponieważ niektórym nawet nie chce się przesunąć ekranu wyżej. PIERWSZA ODPOWIEDŹ to cytuję dokłądnie: To są tablice...
Dobra, prześledź co robi ta Twoja pętla do while w pierwszym cyklu: niech x= 4256 n1=4; x=4256-4000=256 i tak dalej. odejmujesz od x kolejno setki i dziesiątki aż w końcu x=6. Tymczasem Ty zakładasz, że x na koniec pętli jest równe nadal 4256. Aby to działało musisz przywrócić taką wartość x; musisz dodać linijkę x=j; przed x++; Ja bym wczytał końce...
Dobra, czyli dla czytelności kodu będę stosować przyrostki U i UL dla wartości powyżej 65535 i przy przesunięciach bitowych, natomiast co do długości zmiennych widzę, że zdania są tu podzielone, więc nie wiem. Sprawdzę to chyba empirycznie, ile czasu zajmuje ta sama operacja na zmiennej 8, 16 i 32-bitowej. Przed operacją ustawiam pin, po operacji zeruję...
Cześć, dziękuje bardzo za odpowiedź. Używam środowiska Geany na Ubuntu i kompilator to gcc. Czy polecałbyś jakieś inne środowiska, skoro uważasz że to nie powinno się skompilować? Wprowadziłem 3 poprawki i program zaczął działać poprawnie. -przesunąłem definicje tablicy wskaźników do miejsca gdzie words znana jest już wartość zmiennej words -oraz zwiększyłem...
Tak na początek: 1. long to raptem 32-bitowa zmienna. Jako, że w ogóle pracujemy w zbiorze liczb dodatnich, to od razu bym skorzystał z unsigned, co spowoduje podwojenie dostępnego zakresu. Korzystam z long ale aplikacja jest tworzona w CodeBlocks i wybrałem tryb 64 bitowy. Także to jest do zmiany na unsigned long long Parametr -m64 dla kompilatora...
Konstrukcja wsporcza głowicy (tak będę nazywał sprzężony nadajnik i odbiornik) jest sztywna. Na skutek ogrzewania (słońce itp.) będzie wychylać się zawsze w tę samą stronę o taką samą wartość - rozszerzalność temperaturowa ciał stałych. Dokładny termometr będzie moim wskaźnikiem czy i o ile mam co przesunąć. W mikrokontrolerze sterującym będzie tablica...
Z pomocą angielskiej strony udało mi się stworzyć sinusoidę za pomocą PWM. Zrobione to zostało w ten sposób, że jeden timer co jakiś czas odlicza czas w którym DMA wysyła wartości wypełnienia do drugiego timera. Tablicę również znalazłem gotową, zawierała ona 128 wartości, czyli próbek. Po przefiltrowaniu przebiegu PWM przez filtr RC dostałem sinusa....
To już ustawiam w aplikacji: [syntax=c]int main( void) { //--------------------------------------... zegara----------------------------------... FLASH->ACR = FLASH_ACR_LATENCY_2 | FLASH_ACR_PRFTBE; // ustawienie latencji RCC->CR |= RCC_CR_HSEON; // kozystanie z zewnętrznego oscylatora ... //--------------------------------------...
Witam Mam za zadanie posortować macierz 10x10, wiem jak sortować tylko nie mam pojęcia w jaki sposób zapisać to sortowanie w formie funkcji, mam problem przy przekazywaniu argumentu do funkcji jako tablicy dwu wymiarowej, dziwi mnie fakt że w tak napisanym kodzie jak poniżej dochodzi do zmiany wartości w tablicy która jest przekazywana jako argument...
Otóż ten "adres" nie przesuwa o bajty, ale o długość zmiennej. Czyli jak masz Word to przesuwa o 2 bajty. Ale zawsze jest to wielokrotność 8 bitów. I przypuśćmy że nie jest istotne czy przesunie o długość zmiennej byte czy o długość zmiennej word... Jeżeli więc odczytujesz do zmiennej typu Word, to Lookup zawsze będzie odczytywało po 2 bajty. ...ale...
witam troszkę chyba nie to forum no ale spróbuję. Wolałbym asm bo w C to rzadki jestem :) Po pierwsze musisz być pewny jak ułożone są adresy poszczególnych pól (znaków). Z tego co kojarzę to w nietypowych , a na pewno w 1x16 jest przeskok na kompletnie inną wartość, mam przed sobą tablicę akurat właśnie 1x16 i jest tak: 00, 01 ..07,38,39,3A,3B...3F...
Może lepiej byłoby zrobić sumę 8 lub 16 elementów z tablicy i zamiast dzielić przez 10 ( co zajmuje kilkaset operacji procesora) podzielić przez przesunięcie
Witam, proszę o pomoc. Mam wyświetlacz 7 segmentowy sterowany multipleksowo. Każdą zmienna w1, w2, w3, w4 przyjmuję cyfrę z tablicy znaków. przykład w1 = 1 w2 = 3 w3 = 5 w4 = 9 na wyświetlaczu zapala się 1359 To jest ok i działa prawidłowo każda dowolna liczba od 0 do 9 Ale problem mam z połączeniem i rozdzieleniem zmiennych. Moim zamiarem jest aby...
OK, już piszę jak to działa. W moich programach pod mikrokontrolery format tablicy ze znakami jest taki: na początku, pod offsetem '0' wartość która informuje o wysokości czcionki (czyli ile znaków składa się na jedną czcionkę. Pod offsetem '1' znajduje się dana informująca o szerokości znaku, i dalej wartości wiersz po wierszu. Tych danych jest dokladnie...
Witam, chciałbym się zapytać, czy taki sposób implementacji/algorytmu sterowania mikrokontrolerem falownika do silnika indukcyjnego 3 fazowego, przy najprostszym sterowaniu skalarnym U/f = const., bez prędkościowego sprzężenia zwrotnego jest poprawny? https://obrazki.elektroda.pl/1341149300_... Założenia: - Wykorzystuje STM32F103 -...
Czy mógłbyś udostępnić zródła bascomowe dotyczące uśredniania wyników pomiarów?? Proszę bardzo: For Petla = 1 To 9 'przesuniecie tablicy pomiarow o jeden wstecz i dodanie nowego pomiaru Adc_mpx(petla) = Adc_mpx(petla + 1) Next Petla Adc_mpx(10) = Getadc(7) Suma = 0 'obliczanie sredniej z 10 pomiarow For Petla = 1 To...
Kolego BlueDraco, skompiluj to, pokaż co wyjdzie w ASM dla przerwania. Nie analizuj algorytmu, bo nie on jest problemem. Programowaniem (w tym mikrokontrololerów) zajmuje się już tak długo, że łohoho, skoro wziąłem taką tablicę lokalnie to uznałem, że tam może być (akurat tutaj nie musi, ale może), bo zostaje mi jeszcze sporo pamięci. Nie czepiaj się...
zamiast aproksymowac wielomianem mozesz tez stworzyc tzw. Look Up Table (LUT) - tablice zapisana w pamieci programu (jest jej pod dostatkiem w A128), tablica bedzia miala tyle wartosci, ile moze przyjac ADC dla pomiarow z Sharpa, u mnie od okolo 60-560. Wartosc ADC bedzie indeksem (ew. przesuniesz o stala wartosc zeby wyeliminowac nieuzywane wartosci...
to może dasz wzór takiej jednej pętli z moimi wartościami ??, bo mimo że rozumiem system to nie potrafię zatrybić jak to wstawić do wzoru bez jakiegoś praktycznego przykładu ... poza tym widzę ten system binarnie ale dziesiętnie już nie. bo przecież nie będę przeliczał każdej liczby z bin na dec?? Dodano po 27 no zrozumiałem (tak mi się wydaje) że ofset...
Po przeprowadzeniu analizy DFT w tablicy wyników pod indeksem 0 masz wartość składowej stałej. Na kolejnych pozycjach tablicy masz moce na kolejnych fragmentach widma próbkowanego sygnału. Składową stałą możesz się nie przejmować istotne są dane o zawartości częstotliwości składowych analizowanego sygnału. No z tym bym się nie zgodził. Odejmowanie...
Ten program nie był jeszcze wtedy skończony, więc miał trochę błędów ;) Ogólnie chodziło mi o to żeby ktoś mnie upewnił w przekonaniu, że takie "skakanie" po kodzie jest normalne, a nie że np. mam jakąś złą wersję programu. No i tak też się stało ;). Dzięki za bardzo profesjonalne podejście to tego tematu ;). Tutaj wklejam już skończoną wersję programu,...
Mam takie urządzenie ktore mierzy szczyty sinusoid przesuniętych w fazie z trzech przekładników prądowych. Jako, że jest to też Modbus Slave z baudrate 250kbps to nie chciałem robić ADC na przerwaniu bo te już mają co robić z obsługą komunikacji. Tak więc ADC jest obsługiwane przez pooling flagi ADC. Zamieszczam tylko kawałek kodu. W tym urządzeniu...
beta to kąt 0 ReX Jeszcze jedna rzecz mi nie pasuje. Beta osiagnie maks wartosc 465 , po podzieleniu przez 32 = 15 ,czyli maks wartosc jaka mozemy wyciaganc z tablicy sinus: Tmp_c = sinus(15 + 8) * Dane tojuz chyba wyjaśniłem ale moge napisac jeszzce raz beta AND 31 daje jako wynik reszte z dzielenia przez 32 czyli liczby z zakresu od 0 do 31. powtażaja...
Sorry zmyliłeś mnie tym koden na 1820(18s20). DS18B20 w pierwszych dwu bajtach temperatura zapisana jest na 12bitah (11 + bit znaku), a w 1820 na dziewięciu (8+1 znaku). 50h i 05h to 0550h (0000 0101 0101 0000binarnie) jeżeli przesuniesz 4 bity w prawo otrzymasz 0000 0000 0101 0101 czyli 0055h czyli 85stC (gotowe stopnie). A w mlodszym niblu mlodszego...
Miałem kiedyś identyczny problem z VW Jettą 1,6 TD. Ponieważ grzanie świec żarowych rozpoczyna się po obniżeniu temperatury silnika do ok. 70° C, to w przedziale od 90 do 70° C rozrusznik musi więcej razy obrócić wałem silnika, żeby uzyskać temperaturę zapłonu ON (komora wirowa w głowicy). Rozwiązałem problem w prosty sposób. Przesunąłem granicę zadziałania...
Tutaj kod programu: #define ROZMIAR_TAB 185 #define ILOSC_KOLUMN 8 #include <avr/io.h> #include <avr/interrupt.h> #include "dane.h" volatile uint8_t licznik = 0; volatile uint16_t licznik_czas = 0; volatile char licznik_zbocze=1; //uint8_t tablica[9] = {0b11111111, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000,...
Program po drobnych zmianach zadziałał. Błędnie umieściłem adres tablicy ze stałymi - nie w programie głównym a w obłudze przerwania. Teraz już działa. Mam teraz inne pytanie. Chciałem żeby na każdym segmencie wyświetlić inną liczbę (mam 4). Zamierzam zrobić to w sposób multipleksowy. Wykorzystałbym rejesty indeksowe ale jest ich 3 (X,Y,Z) czy mogę...
Nie wiem dokładnie jak to działa... Działa to tak: Przetwornik w LPC1768 na ustawione próbkowanie na wartość np. 100,0 kHz. Ustawiam ten odczyt w pętli for (;;), która wykonuje się 20 razy (oznacza to liczbę próbek). W rezultacie daje to okno częstotliwościowe równe 5,0 kHz, czyli że w tym oknie zmieści się dokładnie 1 okres przebiegu o częstotliwości...
Witam mam problem z programem do trawiarki mianowicie znalazłem na necie program do sterowania trawiarką chciałem do tego dopisać wybór menu żeby było jeszcze był drugi tryb sterowania trawiarką. Wgrałem program do uC i działało poprawnie potem chciałem wgrać ten sam program bez żadnych zmian na inna ATmege8 i okazuje się że teraz program działa trochę...
wskaźnik składa się z z 32 bitów. najmłodsze 3 bity to numer bitu, dalej bajty Np wskaźnik AR1 będzie na 1.3 czyli = 0000 1.011, tam dalej jeszcze 24 bity wskaznika po pierwsze jeżeli nie używasz bitów, 3 pierwsze muszą zostać skasowane, można to robić okreżną drogą, ale nie trzeba, do tego użyjemy przesunięcia SLD jeżeli masz z licznika np 2 = 0000...
Jeśli to ma być pobieranie kolejnych komórek z tablicy, to bez problemu inkrementacja wskaźnika przy odczycie będzie ok - odczyt i inkrementacja są wykonywane równolegle, więc nadal masz 2 cykle dostępu.. ldi XH,(adres_tablicy)>>8 ldi XL,(adres_tablicy) ldi rcnt, 128; liczba przebiegów przez 2 .petla: ld r0, X+ out PORT, r0;...
załóżmy N=8 http://obrazki.elektroda.net/65_12469953... Mój algorytm ...i wtedy mnożąc jest przez kąt fazowy otrzymujemy takie same operacje jak w DFT(N) miałem na myśli że teoretycznie to jest to samo bo licząc DFT mamy 8 mnożeń zespolonych, a licząc w FFT każdą próbkę oddzielnie mamy podobną liczbę mnożeń tylko że wcześniej wykonane mnożenia...
Idea polega na tym, że wskaźniki krążą po buforze w tym samym kierunku, tak jakby koniec bufora połączony był z początkiem, stąd nazwa "bufor cykliczny". Po dojściu do końca bufora wskaźnik przeskakuje na jego początek. Pierwszy zawsze jest wskaźnik zapisu, za nim podąża wskaźnik odczytu. Jeżeli oba wskazują na to samo miejsce to znaczy że bufor jest...
To okienko to nic - zwykła canva formy. Dlatego próbuję Cię przekonać, że do twojego zadania znacznie łatwiej będzie troszkę więcej poświęcić na grafikę, ale mieć nieograniczone możliwości. Tworzysz sobie w pamięci bitmapę, następnie na formie umieszczasz tylko dwa suwaki. Jeśli dane są zawsze tabelaryczne, to łatwo je będzie rysować - kwestia, to zwirtualizować...
Musisz albo dodać 3 x DAC do procesora, albo wygenerować 3xPWM (o rozdzielczości > 1024) i odfiltrować to dolnoprzepustowo. Do tego dojdzie jeszcze wzmacniacz, żeby uzyskać amplitudę 10V. Przesunięcie o 120° to tylko kwestia odpowiedniego indeksowania tablicy z wartościami chwilowymi sinusa.
http://obrazki.elektroda.pl/1852929500_1... http://obrazki.elektroda.pl/5115381900_1... Mimo upływu lat w dalszym ciągu lubię od czasu do czasu odświeżyć sobie w pamięci elektroniczne brzmienia lat 80tych, kiedy to po raz pierwszy miałem okazję usłyszeć „syntetyczną” muzykę pochodzącą z wielkich drewnianych...
co do _sfr_io_addr: - głównie chodzi o to, że standardowa przestrzeń IO ma 64 komórki (dostępne przez instrukcje in/out), ale dostępne również w przestrzeni pamięci ram (przesunięcie +0x20).. w nowszych/większych procesorach te 64 komórki może być za mało - wtedy dodatkowe komórki są pod wyższymi adresami w przestrzeni pamięci, ale oznacza to, że są...
Komunikat "implicit declaration of function" oznacza, że funkcję masz zadeklarowaną w kodzie niżej niż miejsce, w którym używasz tej funkcji. Musisz dodać przed funkcją wywołującą prototyp funkcji wywoływanej. W samej funkcji sprawdz_komende jest kilka błędów: - zmienna używana przez pętlę zdecydowanie powinna być zmienną lokalną. - sizeof zwraca rozmiar...
Czytałem troche o tych wyjatkach (http://www.intercon.pl/~sektor/cbx/adva... ), przejrzałem podręcznik C++ Builder Ćwiczenia i napisałem obsługe wyjątku. Niestety nic to nie pomogło. Może źle ją napisałem a może nie o to chodzi. Może problem jest w zmiennych losowych (o rozkł. normalnym i równomiernym) jakie są wykorzystywane przy opisie...
Majster , do testów co fajnego zrobiłeś w kodzie wrzucam zawsze cały Twój oryginalny plik do ESP. Dopiero potem kopiuje sobie co mi się tam podoba :) Co do problemu czcionki i podświetlenia wyboru. Zerknąłem do kodu i problem leży w nieprawidłowym przeskoku i malowaniu tej ramki. Czcionka Spleen, której używamy nazywa się Spleen6x12 ale w rzeczywistości...
Co do teorii mamy 24 bitowy kolor czyli w przelozeniu na bity RRRR RRRR GGGG GGGG BBBB BBBB a tu 16 bitowy czyli RRRR RRGG GGGB BBBB czyli literka R odpowiada za wartosc koloru czerwonego (np. 1011 0110 - czysty przyklad z kalosza ciagniety) G i B analogicznie - z takiego czegos sklada sie caly kolor Skupmy sie na R (reszta analogicznie) w 24 bitach...
To nie fazy PWM powinny być przesunięte, ale wartości do nich wpisywane. Jeśli np. cały okres przebiegu sinusoidalnego mieści się w tablicy 300-elementowej (t=0..299), to do OCR1A powinien być zapisywany element SINE[t+0] , do OCR1B - SINE[(t+100)%300], a do OCR1D - SINE[(t+200)%300].
Dzięki za podpowiedź BlueDraco, masz rację tablica jest zbędna. Myslę że tak można by to zrobić, czy dobrze myślę? Trzeba tylko zainicjować zmienna "i" wartością 0b00010001 by działało na 4 bitach portu prawidłowo. [syntax=c]//============================... int main(void) { uint8_t i =...
Witam! Sądzę, że ciąg cyfr tworzących liczbę należy podzielić na trójki a każdą trójkę na setki (pierwsza cyfra trójki) którą obsługuje funkcja konwertujSetki() i parę młodszych cyfr ze względu na "nastki" - jedenaście, dwanaście itd które obsługuje funkcja konwertujDziesJed(), po czym odwoływać się do tablic w których umieszczono słownik. Indeksowanie...
Witam Mam przetworzyć odebrane dane z wagi w formacie zmiennoprzecinkowym FLOAT51 na dane zrozumiałe dla sterownika S7-300 na np. REAL. Nie mam pojęcia jak się zabrać do prze konwertowania tego formatu na inny, wszystkie moje próby skończyły się porażką. Oto ramka odebranych danych. RABCXXXXDEF Gdzie: R-rozbiegówka A-adres modułu B-Rodzaj zmiennej lub...
Możesz napisać prostą funkcję wyciągającą dowolny bit... Parametrem może być nawet numer bitu z całej tablicy (licząc od pierwszego). Tworzysz maskę 1b przesuniętą w lewo o numer_bitu modulo 8. Mnożysz logicznie razy numer_bitu dzielony (całkowicie) przez 8. Jeśli wynik>0 to znajduje się tu bit 1.
>W sumie po dodaniu wskaźnika do słownika „nadrzędnego”, odtworzyć >mogę słowo wspinając się aż do napotkania nil’a" Albo: aż znajdziemy wszystkie litery szukanego znaku a będzie pod danym adresem zapisane tłumaczenie. W każdym razie zgodzę się że znacznik jest niepotrzebny. >Zamiast dodawać string z tłumaczeniem dodajmy wskaźnik,...
Wiem, że metoda kopiuj wklej niczego nie zrobię, ani się nie nauczę. Nie na tym rzecz polega. Co do sugestii, sprawdzałem już wpisywanie ręcznie jakiejś wartości do zmiennej temp, oraz do tablicy, działa. W przypadku twojego wpisania danych na tablicy, wyświetla się 25, tak z resztą jak powinno być bo 0x01 to jest 00000001 a 0x09 to 0x10010000. Czyli...
Witam! Przeczytałem już chyba wszystko w temacie, niestety nie daję rady. Chcę wyświetlić temperaturę (na razie tylko dodatnią) na dwóch wyświetlaczach siedmiosegmentowych (wspólne anody, przełączane z portu D3 i D4), no i niestety, same głupoty są wyświetlane (dziwne, bo w tablicy znaków nie ma odpowiedników dla takich cudów, które są u mnie... czyżby...
Oki to zacznę po kawałku od początku... 1) Tworzę sobie tablicę ruchy, która ma być odpowiednikiem planszy do gry... public static int[][] ruchy = new int[15][]; 2) Do tej tablicy tworzę drugą która jedynie przechowuje indeksy do listy - tablica indeksów wypełniona jest kolejnymi liczbami od 0 do 224... public static...
Ta lokalizacja na 4 antenach nie musi być wcale skomplikowana, wystarczą w zupełności 4 anteny + 4filtry + 4 wzmacniacze (regulowane, znaczy z automatyczną kontrolą wzmocnienia) + 2 sumatory + 2 detektory (np. coś z analog devices, powiedzmy AD8307 ze względu na dużą dynamikę) + dwukanałowy przetwornik A/C + procek O co chodzi? A więc. Nie wiem, czy...
Pojawił mi się problem taki, że nie mogę odpalić przerwań. Mam 2 programy: 1- test przerwań poprzez zmianę stanu na pinie D0 i generowaniu dźwięku przez PIEZO - działa super. 2- wstęp do wariometru, też działa super, wykresy generują się bardzo realnie. Próba uruchomienia przerwań w programie 2 nie działa. Timer się kręci elegancko bo wartości licznika...
Nie da się ustawić, bo jest to fizycznie niemożliwe, chyba że dostaniesz się do struktury i sobie mostek drutem zrobisz ;]. Multiplekser sygnałów zegarowych, którego wyjście jest jedynym źródłem zegara dla ADC, nie ma doprowadzonego sygnału bez podziału, najmniejszy dostępny to 2. Nie będzie próbkował z taką częstotliwością, bo się po prostu układy...
To się do tego totalnie źle zabierasz. Po pierwsze po co chcesz liczyć sinusy tych samych wartości w kółko? Nie prościej je stablicować we FLASH? Nawet jeśli sobie wymyślisz, że liczysz z dokładnością do stopnia to ci to zajmie jakieś 720 bajtów bez optymalizacji, czyli tyle ile zajmuje funkcja licząca sinus, tyle, że wynik otrzymasz w 2 taktach CPU....
Przeczytałem z grubsza ten wątek ,ale podobnego przypadku nie spotkałem-zatem w skrócie.Dzisiaj rano był u mojej siostry inkasent i ze zdziwieniem stwierdził,że licznik cofnął się o prawie 4000kWh.Ostatni raz licznik był spisywany pół roku temu,w tym czasie sam się cofnął.Licznik jest elektroniczny,był założony jakieś 4 lata temu i nikt do niego nie...
generowanie tablic dla wersji z podstawą 256 Type SPoint = array[-1..1] of byte; //Representation Const DecDumpName = 'DecDta.txt'; var ct0,ct1 : array[0..$FF] of SPoint; //low/hi byte conversion table RsShift : SPoint; procedure TabGen(MinOut,MaxOut,InRange : word); //Data preparation var vv : Double; vw :...
wiesz co nic nie zmieniałem, pokazywało głupoty bo printf był źle napisany, teraz jest lepiej, ale tablice mam od 0 - 24 a moje właściwe elementy wyświetla dopiero gdy k osiąga wartość 13-38 czyli wszystko jest przesunięte o 13, skąd to sie bierze ??? jak dam tablicę do main to jest gorzej, znowu wyświetla głupoty. to jest obecny wynik : k=0 wsk=17...
po prostu na początku do zmiennej suma o wartości 0 dodaje resztę z dzielenia podanej liczby i w pętli for 32 razy przesuwać bity i na bierząco dodawać suma=suma+przesunięcie. Tak?
Rozumiem, że kompletna składnia wygląda mniej więcej tak(znalazłem to gdzieś w google)?: atoi(text.substr(offset + 47, 1).c_str()), Czy jest gdzieś jakiś podręcznik,strona itp.(niestety znajduję tylko programy z użyciem tej składni bez wyjaśnień) który wyjaśnia tę składnię? Te dwie wartości liczbowe to miejsce położenia litery a w wyrażeniu "arg2134"...
Kurcze ale malutki jestem... :D Po skrócie 1. Nie używałem JTAG-a i ta wiedza póki co nie jest mi raczej potrzebna. 2. Wiem jak ustawia się fusebits, ale jak napisałem na AT mam wyłączony JTAG a na AT168 nie. Jednak magistrala na AT168 działa bez problemu i to na porcie C z włączonym JTAG-iem 3. Rezystor podciągający dobrałem metodą prób i błędów staneło...
Hej! Wiem, że 's' źle pokazuje, bo drukuję sobie jego wartość po wejściu do funkcji. Problem zaczął się wyjaśniać. Zauważyłem, że wartość tego wskaźnika w funkcji jest przesunięciem poprawnej wartości... Jakbym to już gdzieś widział.... Otóż adres tablicy, którą przekazywałem do funkcji nie był podzielny przez 4. Dlaczego? Tablica umieszczona była na...
wrzucam całośc, co do Twojego rozwiązania sprawdzze jutro. Wcześniej nie wywoływałem funkcji w przerwaniu to pojawiały się 'krzaki' na LCD - przerwanie od T0 przerywało chyba funkcję wyświetl() dlatego dałem w przerwaniu. /*======================================... WinAvR wersja WinAVR-20050214 **Program obsługujący woltomierz/generator...
Witam, Ostatnio natrafiłem na problem podczas konwersji pliku *.elf do pliku *.bin z wykorzystaniem narzędzia arm-none-eabi-objcopy. W niektórych przypadkach (w zależności od zawartości kodu) wygenerowany plik *.bin jest wewnętrznie przesunięty o wartość 0x4 co skutkuje błędnym działaniem programu po umieszczeniu go w pamięci nieulotnej (QSPI Flash)....
Coś znalazłem jest w kodzie obliczanie pozycji: Sta = B1 * 15 Sto = Sta + 14 Pozycja = Licznik2 - 6 B = Pozycja * 15 Licznik 2 zaczyna liczyć od 6 więc 6-6 *15 = 0 a w procedurze wyświetlającej następuje odejmowanie od b liczny jeden w każdym odświeżeniu więc zamiast ciągu 15,14,13,12... mam 255,254,253,252... i podejrzewam że to jest powodem wariowania...
Dla przesunięć będących stałymi dostęp przez pola bitowe i przez przesunięcia powinien generować identyczny kod. Natomiast jeśli przesunięcie jest zmienną to o ile chodzi tylko o jeden bit to najszybciej zastosować look-up table - zajmie to tylko 8 bajtów, a konwersja bit - maska to po prostu odczytanie wartości z tablicy.
przesunąć tablica bascom przesunąć tablica przesunąć fazowy
szyba przednia konwertery triax tokarka frezarka
lidlomix silnik samsung ww60j4063lw
Navitel R2 Dual, RC2 Dual – wymiana baterii Li-Po 3,7V krok po kroku Migający wyświetlacz w pralce Candy Rapid - przyczyny i rozwiązania