Dobrze abyś napisał w jakim środowisku działasz, ale ogólnie są funkcje przepisujące i wypełniające bloki pamięci, oraz funkcje tzw adresowania względnego, gdzie wskazujesz początek zakresu pamięci i jakiś wskaźnik (dodatkowy rejestr), będący przesunięciem od tego miejsca. Jak zrobiłeś generator, to używasz od niego styków |p| tym zwiększasz licznik/wskaźnik...
jak mi się wydaje No to nie wiesz po zmianie czego program zaczął działać poprawnie? ;) Mam teraz pytanie. Ze względu, że dostaje kilka ramek jak zapisać do zmiennej: $GPGGA ? Chcę zrobić odczyt od łańcucha $GPGGA aż do 14 znalezionego przecinka po $GPGGA? Do stosowania strtok() taki bufor może okazać się za mały. W prawdzie jest to jakieś rozwiązanie,...
Piszesz, że jesteś początkujący więc będzie Ci trudno zrozumieć wyjaśnienie bez znajomości przynajmniej wskaźników i tablic. Przeczytaj najpierw podręcznik dla tej funkcji - [url=http://www.cplusplus.com/reference/... Funkcja wpisuje do zmiennej "bufor" (tablica znaków - cstring) odpowiednie dane (godzinę) ale żeby nie...
Postanowiłem napisać trochę o programie MHDD moim zdaniem najlepszym programie diagnostycznym do dysków twardych. MHDD możemy pobrać ze strony http://hddguru.com/software/2005.10.02-M... wypalamy go jak zwykły obraz ISO. MHDD pracuje z dyskami ustawionymi na MASTER! Po wypaleniu go na płycie CD bootujemy z niej. Oto główne okno programu: http://obrazki.elektroda.net/15_11863112...
z programu - najpierw wersja wyższa niż 2.9 , klucz 06 zerowanie bufora i liczników oraz centrali z telefonu - jak zalecłałeś i też kicha.
Pokombinowałem trochę w tym przerwaniu. Nie jest idealnie, ale jakoś działa. Po za tym wprowadziłem zerowanie bufora w przypadku, gdy nie dojdzie 5 znaków w określonym czasie. Licznik startuje w momencie odebrania pierwszego znaku.
#include <avr/io.h> #include <string.h> #define MAX_LENGTH 10 // tu wpisujesz maksymalną długość ciągu // jaki będziesz przesyłał int main(void) { char znak; char bufor[MAX LENGTH]; unsigned char i=0; // inicjalizacja USART'a itp. ...... while(1) { znak=USART_Recieve(); if(znak==0x0D) {...
W przypadku Ardunio ja to robiłem na przerywaniu w trybie CHANGE by wykrywał dwa zbocza co daje wynik w 0,5s z mała pomyłka 1Hz.. w setup attachInterrupt(digitalPinToInterrupt(pi... Obrotomierz, CHANGE); ISR Obrotomierz void Obrotomierz() { impulsy_Obr++; } A później na timerze albo w funkcji mills żeby co 500ms przypisał do innego bufora...
To dalej nie jest dobry kod. Co, wg Ciebie, sprawdza poniższy warunek? Zamiast zerować bufor, zapewne wystaczy poprawnie sprawdzać długość. Zwracając message przez wartość kopiujesz ją jeszcze raz.
Jeżeli używasz starszego programu do odczytu taryfikacji, nie Bilingmana, to jest tam w menu opcja "stanowisko główne", jej zaznaczenie powinno skutkować zerowaniem bufora. Jeśli używasz Bilingmana, to ... nie pamiętam czy program powinien zerować bufor, niestety człowiek raz na miesiąc coś tam zczyta z jednej NCT (tu było by widać efekt) i jakoś nie...
Mam do zrobienia program, który będzie zliczać czas trwania programu. Zmienna sekund ma być prezentowana w postaci binarnej za pomocą diod świecących podłączonych do portu P2. Mam użyć systemu przerwań i odpowiedni licznik-timer w wybranym trybie wiedząc, że mikrokontroler jest taktowany zegarem 11.0592MHz, a zatem jeden cykl maszynowy trwa około 1,08507...
Wydaje mi się, że zerpo wcale nie musi sprawdzać kierunku obrotu... Koła robota będą na przekładni ślimakowej, więc to raczej sztywne połączenie i nie pozwoli na obrócenie wału silnika przez moment na kole (zależy to co prawda od modułu ślimaka, ale zwykle jest sztywne, przynajmniej LEGO na pewno), więc kierunek obrotów koła będzie się zgadzał z aktualnym...
Przepraszam - jasne, że us :-) Problem nie leży w samym wydłużeniu czasu - tylko, że SPI przestaje działać - zatrzymuje się dalsze wysyłanie danych. Procesor to PIC32 taktowany 80MHz, SPI taktowane 20MHz w tym momencie. Kod obu przerwań - prosze: SPI - to jest tylko fragment w którym się akurat zatrzymało - wyżej jest tylko odczyt bufora SPI do zmiennej,...
sek w tym ze nie do konca wiem gdzie leży problem bo zaprojektowany sterownik działa dobrze ze starszym sterownikiem a po podłączeniu sterownika GLP zaczynają sie problemy i dlatego pytam czy sterownik moze wysyłać co kilka paczek "pusta paczke" cos w stylu resetu bufora czy jest to ewidentne uszkodzeniu sterownika GLP kable sa na 100% dobre
Czy mógłby mi ktoś pomóc zrozumieć kilka linijek kodu. Napisałem , a raczej skleiłem przy pomocy przykładów z forum komunikacje z miernikiem po RS-ie , wszystko niby działa ale nie rozumiem pewnych fragmentów kodu i mnie to denerwuje bo robie coś na oślep . Może ktoś dopisał by swój komentarz taką łopatologie To jest fragment kodu: Private Sub Przyodczyt_Click()...
U mnie akurat dość szybko "zaskoczyło". Tylko mam w odbiorniku problem z blokowaniem przerwań/timerów . W nadajniku nie ma takiego problemu. timer działa, bo odlicza czas pomiędzy "wysłaniami" oraz czas wywołania czujników DS i DHT11. Zakładałem, że odbiornik działa tak: - nasłuchuje danych - pojawienie się danych wywołuje przerwanie INT2 ( stan niski...
Witam wszystkich. Szukam pomocy w moim problemie przerobienia zastanej/spadkowej instalacji w domku jednorodzinnym. Z moim elektrykiem (z uprawnieniami) nie mogę się dogadać. Tytułem wstępu: A. z dokumentów z 1994r.: Psz=6kW przy Pi=7kW; przyłącze samonośne izolowane ASXS4 4x16mm² AL (o ile dobrze odczytałem), zerowanie w układzie sieciowym TN-C,...
trzeba przeprowadzić tak zwaną inicjalizację w C wygląda ona tak void rtl_init (void) { rtl_config_ports(); // konfiguracja linii komunikacyjnych rtl_reset(); // reset RTL8019A rtl_write(RSTPORT, 0x00); // wpisz wartość 0 do komurki Reset Port dlms(30); // czekaj 30 milisekundy rtl_write(CR, 0x41);...
Mam problem z obsługą odbioru danych przez UART w przerwaniu. Dotąd korzystałem z funkcji SPL niewykorzystujące przerwania do transmisji danych przez UART. Mój kod poniżej, wpisując przez terminal (putty) na klawiaturze cyfry od 1 do 8 mikrokontroler wysyła na terminal m,gp� , a przecież powinien wypluć właśnie przesłane znaki. W czym jest problem...
rozkazów BZG blokada zegara( to ten nieszczęsny BCZ) przy braku systemu operacyjnego zegar generuje przerwania mogące zakłócić diagnostykę. DGN ? RTI to chyba przerwania od urz. zewnętrznych WZS to chyba wskaźniki sumatora? GŁ głośnik ZPŁ zerowanie pułapki - na jednym z pakietów znajduje się licznik na przerzutnikach bistabilnych licznik z chyba 4 (8...
Witam. Chciałem zrobić sterownik wzmacniacza audio na bazie kitu AVT2829. Szczególnie zależy mi na uczeniu się dowolnego pilota. Zrobiłem płytkę przystosowałem do niej program, użyłem większego procesora (atmega8) no i program działa ale strasznie ułomnie. Procedura zapamiętania kodów z pilota przebiega jak należy ale już samo działanie jest strasznie...
Samemu udalo mi sie stworzyc cos takiego: MOV TMOD, #01010000B;t1 jako licznik MOV TL1, #0 ;zerowanie mlodszego i starszego bajtu licznika MOV TH1, #0 ; SETB TR1 ; start zlicznia MOV R0, #CSDS ;do r0 adres bufora wyboru klawisza CSDS(0FF30H) MOV A, #00111111B MOVX (at)R0, A TU: JBC TF1,DIODA ; wskaznik licznika t1=1 - zapalenie diody ikoniec...
Nie w centralce tej kod jest przypisany fabrycznie i nie ma możliwości jego zmiany (w prosty sposób). Przy łączeniu się z centralką za pomocą programu np. DI 12 pobierana jest aktualna konfiguracja centralki z pewnymi ograniczeniami takimi jak np. zerowanie bufora, zerowanie liczników, brak możliwości modyfikacji itd. Po wybraniu "kluczyka" należy wpisać...
Dla ułatwienia walczę z wave 8 bitowym mono 44100 Hz. W głośniczku słychać burczenie. Kod wygląda tak: [syntax=c] #define BUF_SIZE 512 uint16_t buf[2][512]; volatile uint8_t nr_buf = 0;// indeks aktywnego buforu volatile uint8_t can_read = 1; UINT play(char fn) { FIL fil; char *wsk_buf = &buf[0][0]; UINT rb = 0 ; if ( f_open(&fil, "44mono8.wav",...
zrobiłem sobie troszeczkę ładniejszą obsługę całego programu. Niestety, pierwszy raz działa: $GPGGA201529.000||5210.2440N||02100.3153... SMS$GPGSA i tutaj stoi... kod main: rozwiązanie dla potomnych :) w przerwaniu ISR dodałem warunek sprawdzajacy czy GPS_Block jest 0, jeśli jest zaipsuje dane do bufora cyklicznego normalnie,...
Niestety problem jest dalej. Program wyświetla w pierwszej linii zawartość bufora, ale nie wiem jak tę zmienną wykorzystać dalej - chciałbym mieć możliwość jej sprawdzenia - tzn. sygnalizacji, że odczytana zawartość bufora jest zgodna z zapisanym wcześniej numerem - chodzi mi o porównanie z inną zmienną #include <stdlib.h> #include <lcd.c>...
Jako ,ze zmienilem koncepcje obslugi karty (wymuszona zmiana po odkryciu problemu z funkcja MSC_MemoryWrite w wyniku czego na karte trafialy dane z komed wysylanych przez SCSI), podaje jeszcze raz przerobione funkcje, przy ktorych zapis i odczyt dziala prawidlowo : setup [syntax=cpp] BOOL MSC_RWSetup (void) { U32 n; char Text_1234[256]; /* Logical Block...
????? To znaczy jak? Sorki, ale nie jestem zbyt doświadczony i dopiero teraz zaczynam widzieć na co sie porwałem. Choć wydaje mi się, że daleko doszedłem a właściwie to juzż jestem przy końcu (tak mi sie wydaje) ... SIGNAL (SIG_UART_RECV) { tablica Przykład jest dobry , ale ... . Należy kontrolować indeksy,a nie wskaźniki jak nazwał je genetix , mimo...
Całkowicie zapomniałem o temacie :) Z problemem poradziłem sobie w następujący sposób, jest to wycinek z większego programu więc coś może być źle wycięte :) [syntax=c] //--------------------------------------... // Dołączone biblioteki //--------------------------------------...
Tak myślałem. Do tej pory próbowałem sam napisać obsługę opartą na przerwaniach od UATR'u i liczniku, ale dojechałem do chyba martwego punktu - odpytywanie pojedyńczego modułu działa bez problemu, natomiast problem jest z kilkoma modułami, tzn. jak odpytuję kilka modułów odpowiada tylko jeden... Algorytm po krótce wyglądał tak, może ktoś zobaczy błąd...
Kiedy zgrywam mój program dzieją się dziwne rzeczy, kiedy programator jest podłączony do SPI i LPT po włączeniu robota LCD wyświetla napis, który jest ustawiony w nieskończonej pętli programu (1.jpg w załączniku) Kiedy programator nie jest podpięty robot po włączeniu włacza LCD, ale nic nie wyświetla. Kiedy bez podłączonego programatora podłącze kabel...
Kod umieszczamy w odp. tagach SYNTAX Między gwiazdkami fragment do zmiany
Program dopiero powstaje (dopiero mam szkielet do uzupełnienia), wiec moze byc duzo elementów nieaktywnych takich jak PWM'y i i2C itp(ale konfiguracje juz sa), głównie jest MENU nieskonczone ale tyle co jes to działa , no i nieszczesny pomiar z wyswietleniem co 0,5 s za pomoca flagi z przerwania. Docelowo będą czytane wszystkie wejscia ADC ale jak utknołem...
Więc, doszedłem do tego, że mam źle skonfigurowany Timer. Jak wrzuciłem kod z użyciem bibliotek to ruszyło, zaczął przesyłać w nieskończoność jakieś losowe wartości. Po pierwsze w NVICu muszę odblokować przerwanie od Timera: Tak na początek - rejestr danych USART ma 8 bitów, nie 16. Zaprogramuj transfer DMA 8 bajtów, a nie czterech słów. Liczby transmitowanych...
Zaglądałem do tego już, znalazłem też w dokumentacji technicznej atmegi32 kod tylko teraz zastanawiam sie jak to połączyć do reszty programu i klawiszy . Będę bardzo wdzięczny za podpowiedź jak to połączyć w całość i dodać do tego klawisze. kod z dokumentacji atmegi32 void EEPROM_write(unsigned int uiAddress, unsigned char ucData) { /*...
Poniżej źródło w którym mam: -pomiar ADC -pomiar szerokości impulsu PWM wysterowanie przekaźnika -USART Mikrokontroler ma spełniać funkcję sterownika do ledów jako oświetlenie samolotu z wyróżnieniem wszystkich etapów startu jak kołowanie włączenie silników itp. [syntax=c] #include <avr/io.h> #include <inttypes.h> #include <util/delay.h>...
Witam, Jestem w trakcie przerabiania kursu z EdW http://sklep.avt.pl/photo/product_info/c... Pracuje na zestawie startowym ZL3AVR http://obrazki.elektroda.pl/1437402200_1... Zamieszczam kod programu: ////////////////////////////////////////... // main.c - testowanie...
Próbuję przeanalizować kod samplowy: $crystal - częstotliwość rezonatora $baud - prędkość transmisji po UART $regfile - deklaracja typu procesora b). konfiguracja automatyczna na podstawie wybranego uP: Loaderchip - stała - deklaracja, jaki uP będzie wykorzystany W zależności od tego ustawione zostaną zmienne: $loader - adres pod jakim znajduje się...
Napisałem sobie takie oto funkcje do obsługi DS18S20: #include <DS89C4xx.H>// biblioteka uC DS89C430 typedef unsigned char BYTE;// definicja typow danych typedef unsigned int WORD; sfr led_10 = 0x80;// port P0 wyswietla cyfre dziesiatek sfr led_01 = 0xA0;// port P2 wyswietla cyfre jednosci sbit DQ = P0^7; sbit run = P1^0; sbit error_sensor = P1^1;...
Przystąpiłem do lekcji 10. Zrobiłem analogiczne poprawki, jak w lekcji 9, ale niestety również nie mogę skompilować kodu. Poświęciłem praktycznie cały dzień na szukaniu przyczyny. Pojawiają się takie błędy przy kompilacji: http://obrazki.elektroda.pl/4932303600_1... Tutaj zamieszczam kod programu po moich poprawkach: ////////////////////////////////////////...
W zmiennej sl masz wartość odczytanych bajtów (sl jako trzeci argument funkcji pf_read) zatem co robi zapis bufor[s1+1] = 0; ?? No zeruje element bufora następny za tym, w którym został zapisany ostatni bajt. Czasem tam lubią zostawać jakieś śmieci i przy wyświetlaniu potem takiego "cudoka" wyświetla.
No więc robisz to tak: 1. Danymi wejściowymi dla procedury FFT jest bufor próbek o długości równej ilości punktów FFT (czyli jeśli FFT jest np. 512-punktowa, to bufor wejściowy musi mieć 512 próbek dźwięku). 2. Danymi wejściowymi są liczby rzeczywiste, więc zerujesz bufor części urojonej (jeśli takowy w ogóle jest). 3. Wyjście procedury FFT to 2 bufory...
Strasznie się zapętliłeś z adresowaniem. MOV A,4 oznacza prześlij do akumulatora zawartość komórki o adresie 4 (czyli to samo co MOV A,R4) natomiast MOV A,#4 oznacza wpisz do akumulatora wartość 4 Proponuję zacząć używać symulatora (np. AVSIM'a) Moja propozycja kodu: MOV R1,#4 ;LICZBA ELEMENTÓW MOV R2,#0 ;ZEROWANIE BUFORA SUMY PETLA: MOV DPTR, #Tablica...
U mnie również zdarzają się zerowe odczyty czasami dlatego wyrzuciłem z kodu zerowanie buforów //memset(battery.buf, 0, sizeof(battery.buf)); //memset(load.buf, 0, sizeof(load.buf)); //memset(panel.buf, 0, sizeof(panel.buf)); //memset(status.buf, 0, sizeof(status.buf)); //memset(rtu.buf,...
No ale jaki jest w ogóle sens tego kodu? 1. Najpierw czekasz na zmienną którą ustawiasz w tej samej funkcji i ponoć nie masz przerwań (choć w komentarzach coś niby o nich piszesz), to po co czekać? (nie mówiąc już o tym, że się nigdy nie doczekasz poza pierwszym razem [może], gdyż nigdzie tej zmiennej nie zerujesz przy braku problemów) 2. Potem kopiujesz...
Zrób odbiór na przerwaniu, a w pętli głównej tylko sprawdzaj jakąś zmienną, ustawianą w przerwaniu, czy coś przyszło, jeśli nie, to goń procka do innej roboty... ;) Acha, jak już wszystko będzie odczytane to tą zmienną sobie zerujesz... Ogólnie to można zrobić bufor, a ta zmienna będzie licznikiem nieprzetworzonych bajtów.
Weryfikację końca ramki lepiej robić w przerwaniu. ISR(USART_RXC_vect) { buf_odbioru[poz_znaku_odbioru]=U... Czas_UARTA = 50; if(buf_odbioru[poz_znaku_odbioru... && buf_odbioru[poz_znaku_odbioru-1]... ) { flagi_UARTA.dane_przyszly=1; } if(poz_znaku_odbioru<ROZM_BUFORA_...
A skąd wziąłeś krasnoludka, który pilnuje, żeby GPS rozpoczął transmisję wiersza po zaprogramowaniu DMA i drugiego, który pilnuje, żeby wszystkie wiersze miały po 99 znaków? Ja też chcę takie dwa krasnoludki! Pardon, zapomniałem o trzecim krasnoludku - tym od zerowana bufora danych przed transmisją.
Zobacz jaka wartość zwraca scanf. zezeli w tym przypadku 2 i ciagle 2 to znaczy ze nie zeruje bufora - zetkąłem sie z tym problemem na ktorejś wersji biblioteki standardowej na AVR-ach. Nie za bardzo znalazłem rozwiązanie i napisałem po prostu funkcję czytająca znaki do bufora a następnie jest wołany sscanf.
Dlaczego wstawiłeś pół alfabetu jako zmienne? :O :) Timer2 powinieneś włączyć po odebraniu pierwszego bajtu, a wyłączyć i zresetować po odebraniu ramki lub zresetowaniu bufora. Chyba, że ma działać cały czas, wtedy zerować Ramkatimeout odbierając pierwszy bajt. Zerujesz bufor, ale nie zerujesz In_pos . Wyłącz przerwanie Urxc , gdy to robisz. Bezpieczniej...
kasowanie bufora dobór bufora ładowanie bufora
zmywarka amica staje philips oczyszczacz windows recovery system vista
aktualizacja dekodera aktualizacja dekodera
Przepalanie bezpiecznika świateł cofania w Renault Twingo 2 - przyczyny i diagnostyka LSPA9 Smart Socket PCB Schematic and Components