Czołem! Chciałem napisać własną funkcję delay_ms w oparciu o timer procesora Atmega168. Namęczyłem się z tym strasznie, aż w koncu wziąłem gotowca - trochę przerobiłem - i dochodzę do takich wniosków, że Ten kod nie działa(nie wiem czemu) - próbuje w nim mrygać diodą przypięta do portu B za pomocą odczekiwania 10[jednostek czasu] poprzez wywołanie funkcji...
Witam, mam problem z działaniem funkcji _delay_ms() - nie powoduje oczekiwanego opóźnienia w milisekundach - opóźnienie jest zbyt małe (około 20 krotnie mniejsze od oczekiwanego). Aby otrzymać prawidłowe opóźnienie musiałem utworzyć funkcję _delay_ms2().. kod poniżej. Na forum znalazłem podobny problem: Zapoznałem się z: Korzystam z zestawu uruchomieniowego...
loocasm : funkcje static inline w nagłówku owszem mogą być, aczkolwiek nie powinno się tego stosować zbyt często - jeśli funkcja jest długa i nigdy nie została by wstawiona inline przez kompilator, to zostanie ona skompilowana w każdym module w którym jest używana z osobna - wynika to z tego, że kompilator ignoruje wtedy inline, po wstawieniu nagłówków...
Witam. Zakupiłem Chińskie radio 2 din android, mam taki problem, a mianowicie po przekręceniu kluczyka w stacyjce do tzw pozycji 0 radio się wyłącza lecz zapamiętuje ostatnią np wybraną stację lecz brak jest podtrzymania. Radio od nowa ładuje system pomimo że chociaż na chwilę został przekręcony kluczyk. Prawdopodobnie w radiach tych jest funkcja Auto...
Na początku się zdecyduj, czy chodzi Ci o us czy o ms. funkcje typu delay nie służą do odmierzania czasu i nigdy taki pomiar nie będzie dokładny. Funkcje te służą do osiągania opóźnień, przy których nie jest potrzebna duża dokładność. W przypadku jeżeli używasz przpeprwań, funkcje te są jeszcze bardziej nie dokładne, im więcej i częściej pojawiają się...
Witam Pisze własnie program do sterowania w LCD w C pod Microblaza o zegarze 100MHz i mam problem z czasem. Mianowicie, znalazłem sobie funkcje : void czekaj(unsigned int useconds) { int i,j; for (j=0;j<useconds;j++) for (i=0;i<26;i++) asm("nop"); } teoretycznie powinna dawać mikrosekundę opóźnienia,...
Witam wszystkich, nurtuje mnie dziwnie napisana funkcja delay w bibliotece którą znalazłem do obsługi czujnika wilgotności i temperatury SHT10. Bibliotekę zaimplementowałem w swój projekt, i czujnik ładnie działa, ale za cholerę nie wiem jak on działa korzystając z tego dziwnego delaya...Dlaczego autor nie mógł po prostu użyć wbudowaną funkcję z biblioteki...
Witam, Mając bity OPEN i CLOSE , jak dorobić do nich funkcjonalność w ISPSoft, a zasadzie trzeci bit DELAY, który ustawiony jest na kilka sekund gdy wystąpiło zbocze opadające OPEN lub CLOSE ?
Wlepiam cały kod, ale chodzi o ostatnie 30 linijek, bo wszystko inne jest na 100% dobrze. EDIT: na płytce Arduino UNO R3 wszystko działało poprawnie, więc po prostu ta płytka nie zna tej funkcji :) [syntax=c] #include <Servo.h> #define backRight 22 #define backLeft 23 #define right 24 #define left 25 #define laser 26 #define led 27 #define buzzer...
Dziękuje Kolegom za podpowiedzi jednak pliki *.lss i *.map są po prostu nie czytelne. Grzebanie i wyszukiwanie w nich zwięzłej informacji jest czasochłonne. Do tej pory posługiwałem się prostszą "łopatologiczną" metodą - wycinania funkcji i sprawdzania o ile zmniejszy się zajętość flash i ram. Chciałem się dowiedzieć czy jest jakaś lepsza metoda, może...
Jak ma wyglądać funkcja która będzie włączać pewien proces migania diody led poprzez zetkniecie dwóch określonych pinów (np.PB5 i PB6) Chcę dodać że posiadam procesor Atmega 8L i program WinAVR. Funkcja migania diody LED wygląda tak: #include <avr/io.h> /***************************************... Definicje stałych ****************************************...
Witam. W Bascomie istnieją funkcje takie jak waitms i waitus. Podobne funkcje są w CodeVison delay_ms i delay_us.Moje pytanie brzmi jak wygenerować opóźnienie mniejsze od 1us. Wiem że trzeba napisać coś w asemblerze którego ja zupełnie nie znam. Za pomoc dziękuje z góry.
Witam Was mam taki problem i nie wiem jak sobie z nim poradzić. Słowem wstępu Mk: stm32303vct6 zestaw discovery podłączony kwarc tak jak poniżej zwarte SB17 SB18, rezystor już był, dolutowałem C23, C22 - 22pF (nie miałem 20pF) SB12 do MCO nie ruszałem, jeszcze nie wiem do czego mogę MCO użyć konfiguracja zegara wygląda tak, ogólnie ma być wszystko na...
Witam, Zaczynam zabawę z STMami i mam pewien problem. Z kilku kodów w internecie zlepiłem swój kod i niestety jak to zwykle bywa coś jest nie tak. Docelowo chciałem obsłużyć wyświetlacz TFT wykorzystując FSMC. Napotykam problem gdy próbuje zrobić w pętli głównej wysyłanie danych przy użyciu FSMC w pewnych odstępach czasu. Jeżeli w kodzie umieszczam...
Nikt nie wie dlaczego tak się dzieje? Sterowniki do płytki przeinstalowałem, działają poprawnie ale problem nadal występuje. Może zamiast instalować trzeba pomyśleć? to jest zinlinowane makro, w którym się kręcisz jak wiadomo co. Jak delay to tylko breakpoint na następną po niej instrukcje a najlepiej wogóle nie stosować delay Może zamiast pisać tego...
Mam pytanie: Czy ktoś widzi coś nieprawidłowego w tym kodzie? Szukałem problemu przy niedziałającym wyświetlaczu LCD i stwierdziłem, że nie działają Delay'ie. Podłączyłem więc port PIC'a do diody i chciałem aby mrugała co 1sek. Dioda świeci cały czas... Gdy zostawię w kodzie tylko RW=0 - dioda świeci, (1-nie świeci) LCD.h [syntax=c] #include <htc.h>...
Walczę ze zrobieniem opóźnienia w ms wykorzystując timer TMR32B0. Kod wygląda następująco Jak widać wypełnienie równomierne ale wg. kodu stan niski powinien trwać o połowę dłużej. Gdzie jest "pies" pogrzebany ?
Witam. Mam pewne pytania odnośnie swojego telewizora, ale problem w tym, że nie wiem, jaki mam model. Wiem tylko, że jest to Sony Trinitron. Do trybu serwisowego wchodzi się następująco: [i+] [5] [głośność +] [pusty ekran]. Chodzi mi o znaczenie poszczególnych funkcji. W głównym menu są między innymi funkcje AGC i PLL. W AGC przy dążeniu do 0 obraz...
Tak jak pisałem wyżej, C znam słabo i próbuje swoich sił. Pierwsza wersja tego co napisałem i zadziałało ok wygląda tak: [syntax=c]#include <pic16f84a.h> #include <htc.h> #include <delay.h> #include <delay.c> #define _XTAL_FREQ 6000000 //rezonator 6Mhz __CONFIG(FOSC_XT & WDTE_ON & CP_ON & PWRTE_OFF); //rezonator,...
Powiem tak... Wrzuciłem taki projekt u siebie, dodałem brakujący nagłówek <util/delay.h>, zakomentowałem rzeczy których kompilator nie mógł znaleźć (jakieś rejestry i nagłówki których nie mam) i... bezproblemowo znajduje funkcje... 4\/3!!
Masz cos jeszcze podlaczone do tego portu? Wez sprawdz takie program: #include "delay.h" #include <avr/io.h> void main() { DDRB |= _BV(6); PORTB | = _BV(6); while(1) { PORTB |= _BV(6); delayms(100); PORTB &= ~_BV(6); delayms(100); } }
Mam takie małe pytanko , otóż w przedstawionym fragmencie kodu sprawdzam wynik funkcji zwracajacej 1, jeśli przycisk podany w argumencie jest wcisnięty i 0 jeśli nie; I teraz pytanie czemu takie odczytywanie nie przynosi rezultatu? Ta sama funkcja, tylko z innym argumentem w tym samym czasie nie będzie się wykonywać? Pierwszy raz spotykam się z takim...
Spróbowałem odblokowania przerwań na czas opóźnień w resecie i działa to bardzo dobrze. Nie ma błędów komunikacji, a na silniku nie słychać już żadnych przerw - praca jest płynna. Czyli chyba problem rozwiązany. Ja korzystałem z tego opisu Atmela, do którego dołączony był przykład: . Napisany co prawda na Atmegi, ale łatwo udało się go przerobić. Mój...
Zaczynam dopiero bawić się z ARMami - na początek podłączyłem do takowego wyświetlacz z nokii 3310 i chcę się z nim komunikować przez SPI. Wszystko działa pięknie... dopóki kod jest w funkcji main, jeżeli inicjację wyświetlacza dam do osobnej funkcji to nie działa. Nie wiem czy się ktoś spotkał z czymś takim. Poniżej zamieszczam kody: Ten działa bez...
Mam maly problem. Mniejsza o co chodzi w programie, ale zalezy mi na tym zeby skorzystac z funkcji goto jezyka C. Po wykonaniu przerwania chce zeby program zaczal sie wykonywac od etykiety H. Moj kompilator wyrzuca mi jednak blad. Nie wiem co robie zle... Pomocy!!! Oto moj program: #include <avr/io.h> // dostęp do rejestrów #include <avr/interrupt.h>...
Witam zaczynam zabawę z AVR GCC w AVR Studio 5. Wcześniej programowałem trochę w assemblerze i w C dla procesorów PIC. Zdecydowałem pobawić się trochę AVR Studio 5 bo ma wbudowany kompilator. Napisałem/zmodyfikowałem program z jakiegoś tutoriala online. Program ma na celu zapalać i gasić diodę na linii 0 portu B co określony czas. LED jest podłączony...
Chciałbym zrobić centralkę alarmową, która odcinała by zapłon lub pompę paliwa, Założenia są takie: 1.Sygnał włączenia zapłonu(wydaje mi się, że to dobrze napisałem). 2.Po włączeniu zapłonu mamy 20 sekund na kliknięcie ukrytego przycisku. Po 8 sekundach następuje sekundowe oświecenie się diody i włączenie buzera. Po 13 sekundach następuje oświecenie...
W takim razie, postaram się podać to na przykładzie. Procesor to ATTINY13 Poniżej przedstawiam kod testowego programu: #define F_CPU 1000000UL // 1MHz #include <util/delay.h> int main() { _delay_us(10) ; return 0; } Wynik kompilacji z ustawieniem optymalizacji kodu na "-00" (...) (...)delay.h:90:3: warning: #warning "Compiler...
Kolego Robaku w bibliotece lcd.h mam taką linijkę: #define XTAL 1000000 /**< clock frequency in Hz, used to calculate delay timer */ Jednak czy to w jakiś sposób może wpływać na działanie funkcji delay.h w pętli głównej programu ? Nie ukrywam, że to właśnie także do obsługi LCDka ten poprawny delay, ktory powinien dawac równo sekunde przy wywołaniu...
Witam. Mam krótkie pytanie odnośnie funkcji realizującej opóźnienie zawartej w pliku nagłówkowym delay.h w AVR GCC. /** \ingroup util_delay Delay loop using an 8-bit counter \c __count, so up to 256 iterations are possible. (The value 256 would have to be passed as 0.) The loop executes three CPU cycles per iteration, not including the overhead...
Ciężko tu zaobserwować zmiane tych wartości ponieważ jest to program na do mikrokontrolera ATMEGA, wrzucam cały kod, może będziecie wiedzieć co tu jest źle. #define F_CPU 14.7456E6 //delay.h //na podstawie podanej czesotliwosci kwarcu obliczane beda opoznienia wystepujace w programie #include "pliki\io.h" #include "pliki\delay.h"...
Mam problem z skompilowaniem programu wykorzystującego biblioteki AVR can ( ). W głównym pliku załączam pliki nagłówkowe ale pomimo to kompilator nie widzi plików (funkcji) znajdujących sie w plikach *.c. Załączenie ich w nagłówku chyba nie rozwiązuje problemu ponieważ kompilator wyrzuca mnóstwo błędów odnośnie tej 'oryginalnej biblioteki'. Jak rozwiązać...
Przede wszystkim chciałem wszystkim powiedzieć serdeczne WITAM:P Tak sie złożyło, że ostatnio zainteresowalem sie programowaniem mikrokontrolerów, troche poczytałem no i wziąłem sie za pisanie pierwszych programów... i tu mam problem z biblioteka delay.h (tak wiem - bylo walkowane nie raz- czytałem odpowiedzi na moje pytanie nie znalazłem) Oto kod programu...
mam taki problem wyskakuja mi warningi i nie mogę ich wyeliminować c:\winavr-20090313\bin\../lib/gcc/avr/4.... In function 'void WaitMs(uint8_t)': c:\winavr-20090313\bin\../lib/gcc/avr/4.... warning: will never be executed c:\winavr-20090313\bin\../lib/gcc/avr/4.... warning: will...
Witam, Piszę od jakiegoś czasu mój pierwszy ambitniejszy program w C na AVR, i przy okazji sukcesywnie poznaję ten język. Ostatnio zabrałem się za projektowanie prostego menu i utknąłem. Na początek przejrzałem projekty takie jak MicroMenu, TinyMenu itp., ale stwierdziłem że wskaźniki do struktur i funkcji to jeszcze nie mój czas, chociaż wydaje mi...
Znam tego bloga i też tam zaglądam. Ale nie znalazłem działu z pisaniem bez delayów, byłbym wdzięczny jeśli ktoś zgłębił tą tematykę, odesłanie pod dział pisania bez delayów (funkcja millis();). W książce którą czytałem, niestety nie było takiego działu, były tam podstawy programowania, bardzo jasno i zrozumiale przedstawione. Niestety nie ma kontynuacji...
Zapewne dlatego iż brak usuwania zbędnego kodu (--gc-sections itp) niestety nie dlatego. Byłoby to zbyt proste. Budowałem też w oryginalnym środowisku projektu (eclipse), gdzie są włączone optymalizacje i to samo. Binarka o 2.5kB za duża na Atmega8. Pliki projektu eclipse wskazują na avr-gcc. Ostatni avr-gcc był wydany w 2010 roku, więc na długo przed...
//--------------------------------------... // Komunikacja po magistrali 1-Wire(plik dołączany do biblioteki 1-Wire.c) // Plik : 1-Wire.h // Mikrokontroler : Atmel AVR // Kompilator : avr-gcc //--------------------------------------...
Witam, mam problem z atmega162 - każde wywołanie funkcji _delay_ms lub _delay_us przerywa wykonywanie programu. Fusebity ustawione na: efuse - FF, hfuse: C9, lfuse: EF, korzystam z usbasp, kwarc 12M Taki kod działa - na wyjściu jest 0: [syntax=c]#include<avr/io.h> #include<util/delay.h> #define F_CPU 12000000 int main(void){ DDRC = 0xFF;...
Czy ktoś potrafi zrobić z tego kodu użyteczny program ? ? ? .... zaczynam się zastanawiać czy nie zlecić jego napisania ale nie mam pojęcia ile taka usługa może kosztować. Dla zorientowania się o co mi chodzi wklejam cały kod którego część funkcjonuje. [syntax=c] #include <stdint.h> #include <avr/io.h> #include <stdlib.h> #include...
Jak użyć stałych zapisanych w pamięci programu przez const unsigned char TEXT[] = "jakiś tekst"; W funkcjach typu strcpy(), strcmp() itp? Te funkcje nie przyjmują wskaźnika do const więc nie można zrobić tego w ten sposób: strcmp(bufer, TEXT); co gorsza nie da się w ten sposób: strcmp(bufer, "jakiś tekst");...
To jest mój pierwszy projekt, używam Atmega8A, napisałem banalny program żeby migać diodą: [syntax=c]#define F_CPU 1000000 #include <avr/io.h> #include <util/delay.h> int main(void) { /* Wszystkie linie portu D będą wyjściami */ DDRD = 0xFF; /* Początek nieskończonej pętli */ while(1) { PORTD = 0b10000000; _delay_ms(100);/* opóźnienie 0.33...
[syntax=c] #include <avr/io.h> #include <avr/interrupt.h> #include <avr/pgmspace.h> #include <util/delay.h> #include <avr/pgmspace.h> #include <avr/eeprom.h> #include "hd44780.h" #define LED_DATA PORTD //port pod kt�ry pod��czony jest wy�wietlacz LED #define LED_DATA_DIR DDRD//kierynek...
Witam, piszę sobie taki oto kod i spotykam dziwne zachowanie układu. W skrócie: Jest sobie kontrolny debug na terminal , a po nim jest wywołanie funkcji. W efekcie podejrzana funkcja sprawia że debug który w kodzie jest przed nią się nawet nie pojawia. Sęk w tym że w podejrzanej funkcji nawet gdy użyję debugu na samuśkim jej początku to i tak go nie...
Witam wszystkich mam następujący problem, otóż chciał bym stworzyć funkcję która pobiera z portu rs232 cały napis, który następnie mógł bym przekonwertować do postaci integer, czy double lub inne zmiennej liczbowej. Próbowałem to zrobić w oparciu o własną funkcje uart_get_string ale funkcja pobiera tylko jeden znak. Powyższe potrzebne mi jest do np....
Pomysł nie jest zły. Zmieniłbym nazwę timeout na delay. Timeout oznacza, że minął czas oczekiwania na coś. Inkrementacja licznika message_count powinna wykonywać się na zbocze. Zapytam jeszcze z innej beczki. Załóżmy, że masz aktywnych kilka alarmów. Może od razu wyślesz sms-a z listą wszystkich aktywnych alarmów? Zaoszczędzisz ;)
Witam, mam problem ze skonfigurowaniem Atmegi328P. Nie mogę zmusić jej, żeby _delay_ms(500) opóźniało program rzeczywiście o 500ms. Posiadam również Atmegę8A i na dokładnie takim samym kodzie funkcja delay działa prawidłowo. Kod prezentuje poniżej: [syntax=c]#define F_CPU 8000000UL #include <avr/io.h> #include <util/delay.h> int main(void)...
Kupiłem moduł Dostarczono bez pudełka: Instrukcja obsługi: Moduł z zewnątrz i wewnątrz: Opis na płycie: HFY-CL02WF+RF Rev 2.0 Moduły radiowe są spięte płytką ze zworkami. Moduł Wifi znajduje się pod modułem RF, z boku widać, że jest to CB2S. Moduł nie musi być rozlutowywany w celu flashowania OBK, styki są łatwo dostępne na płytce zworek. Flashowanie...
Witam. Mam problem. Napisalem program do wysylania danych przez RS z plytki ZL10AVR z mikrokontrolerem ATmega32. Dodatkowo w programie LabView na PC zrobilem odczyt jak i wysyl danych. Na dzien dzisiejszy program dziala tak, ze po wcisnieciu odpowiedniego przycisku na klawiaturze 4x4 wysylana zostaje odpowiednia dana (np: "1"). Na PC LabView odbiera...
Nie działa, jedyne co zmieniłem to zamiast nóżki "0" ustawiłem "2" - tam mam przekaźnik sterowany tranzystorem NPN. Dodam, że program napisany w C (i po wyłączeniu preskalera (przez 8 ) w fusach: #include <avr/io.h> #define F_CPU 9600000 #include <util/delay.h> void main(void) { DDRB = 0b00000100; for(;;) { PORTB...
Skonfigurowałem sprzętowo uart w atmega8, chciałem użyć funkcji printf i scanf do odbierania i wczytywania danych ale one nie działają . Używam Programmers Notepad #include <avr/io.h> #include <avr/iom8.h> #include <util/delay.h> #include <avr/interrupt.h> #include <string.h> #include <stdio.h> #define F_CPU 8000000UL...
Zrobiłem test na przykładzie z innego wątku i to działa A spróbuj dodać pod spodem drugą funkcję umieszczoną w RAMie. Działa, ale z warningiem assemblera. Warning występuje w pierwszym i drugim przypadku. #include "LPC214x.h" void Timer0Handler (void) __attribute__((interrupt(&qu... void InitTimer0(void);...
Mam pytanie mam dziwne objawy diody nie ragują na zmiane czasu w funkcji delay co może byc tego przyczyną? kod programu jest poniżej w czymś zrobiłem błąd? wydłużanie czasu w programie miedzy jednym mrugnieciem a następnym nic nie daje diody mrugają ale nie reagują na zmienianie wartości czasu opóznienia. #define F_CPU 1000000UL #include <avr\io.h>...
Witam Napisałem program który zapala mi na przemian 5 i 8 na 7-LED. Wykorzystałem do tego dwa podprogramy. Moje pytanie jest następujące: czemu wyświetlane są liczby mimo ze funkcje poprzez wpisanie void ani nie otrzymują ani nie przekazują wartości? Jestem początkujący i proszę o wyrozumiałość. Z góry dziękuję za odpowiedź #define F_CPU 4000000L #include...
I najważniejsze: Przy wykorzystaniu timera, zapomnij o funkcjach delay-opodobnych.
Witam, od kilku dni męcze się z dorobieniem funkcji, która umożliwi mi definiowanie własnych znaków na LCD na sterowniku hd44780 (20x2). Tak naprawdę to potrzebna mi jest strzałki do góry i na dół, która symbolizowałaby spadek oraz wzrost temperatury. Bibliotekę do obsłiugi LCD wziołem z tąd: [url=]Link Poniżej kod biblioteki: plik hd44780.h [syntax=c]...
WItam, mam problem z użyciem funkcji sprintf. Kiedys pisałem program na atmege i działało idealnie(symulacja w proteusie). Symulacja działa do dziś. A kiedy zaczynam pisać nowy program symulator nie odczytuje mi funkcji sprintf. Zawarłem wszystkie biblioteki, i prawidłowo definiuje zawartość samego sprintf. Chwale sobie proteusa bo nie musze tracić...
Witam, Mam drobny problem z podczerwienią. Skorzystałem z kodu z strony . Kodzik bardzo fajnie działa, odebrany sygnał wyświetlony na 6 diodach pokrywa się z kodami dla każdego przycisku w systemie RC5. Mój problem polega na tym, że nie potrafię przekazać odebranego kodu do głownej pętli aby konkretnemu przyciskowi przypisać funkcję, np zapalenie diody....
Znalazłem kod obsługujący mcp41100, wszystko rozumiem, ale po co w kodzie występują funkcje NOP, i z czego wynika ich ilość w kodzie. Rozumiem że realizują one opóźnienia. include <avr/io.h> #include <util/delay.h> #define DDR_SI DDRD //wejście SI #define PORT_SI PORTD #define SI PD5 #define DDR_CS DDRD //sygnał CS #define PORT_CS PORTD...
[syntax=c] #include <avr/io.h> #include <util/delay.h> #define DS0 PORTD&=~(1<<PD0) #define DS1 PORTD|=(1<<PD0) #define ST0 PORTD&=~(1<<PD1) #define ST1 PORTD|=(1<<PD1) #define SH0 PORTD&=~(1<<PD2) #define SH1 PORTD|=(1<<PD2) static int d1[8]={1,0,0,0,0,0,0,0}; static int d2[8]={0,1,0,0,0,0,0,0};...
No tak, nie podałem że po main() jest definicja. To teraz dalej całość: [syntax=c]#include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> volatile uint8_t pwm0=56; volatile uint8_t pwm1=108; volatile uint8_t pwm2=60; volatile uint8_t pwm3=70; volatile uint8_t pwm4=80; volatile uint8_t pwm5=85; volatile uint8_t pwm6=90;...
[syntax=c]/* Plik "main.c" PD4,PD5,PD6,PD7 - przyłączone czujniki ds18b20 PA0-PA6 - wyswietlacz LCD */ #include <stdio.h> #include <avr/io.h> #include <util/delay.h> #include "hd4478.h" #include "ds18b2.h" #include <avr/interrupt.h> char str[20]; char inout[20]=" IN OUT "; /* Zmienna przechowuje aktualną wartość temperatury */...
Napisałem taki program, na celu ma on wyświetlenie na LCD liczby w formacie XX.XX Wykorzystując funkcję "sprintf": [syntax=c] #include <avr/io.h> #include <util/delay.h> #include <stdio.h> #include "HD44780.h" #include "keyb.h" char buf[32]; volatile float a=22.12; int main(void) { DDRD= 0b00111100; PORTD=0b11101100; LCD_Initalize();...
Witam! Przed napisaniem tematu znalazłem coś takiego Twoja funkcja USART_Receive() sprawdzi, czy flaga RXC jest ustawiona i - jeśli nie - zakończy działanie, zwracając właściwie trudno mi określić co. Trudno określić, bo funkcja zwraca niezainicjowaną zmienną, której - w przypadku, gdy RXC=0 - nie przypisujesz żadnej wartości. Nie wiem też co z tym...
Witam. Mam płytkę MMnet03 + EVBnet03 (z procesorem atmega128). Programuję AVR w C dosyć długo, ale z takim czymś się nie spotkałem jeszcze. Utknąłem na prostej rzeczy, otóż mam podłączoną diodę do wyjścia PB0, którą chcę wysterować. Teraz pytanie dlaczego ten program działa (dioda normalnie pracuje): [syntax=c] #include <avr/io.h> #include <util/delay.h>...
Mam problem z wywoływaniem funkcji na mikrokontrolerze atmega64. Jakąkolwiek funkcję wywołam, to wykonuje się w nieskończonej pętli. Dodam, że na mikrokontrolerze zmieniłem fabryczne ustawienie fuse bitów tak aby otrzymać taktowanie na wewnętrznym kwarcu równe 8Mhz. Aby to zrobić zmieniłem tylko ustawienia bitów CKSEL żadnych innych bitów nie zmieniałem....
z gory zaznaczam ze to moj pierwszy program! mam atmege 128 i wysw. 7segm. i za zadanie mam jakikolwiek prosty zegarek/stoper napisac cos tam napisalam ale niestety zle mi wyswietla tzn wgl nie realizuje kodu teoretycznie algorytm jest dobrze napisany, ale jak zmieniam liczby tutaj : [syntax=c]TCCR0 |= (1<<WGM01); //tryb CTC OCR0 = 39; //ustawienie...
Mam poniższy kod który kompiluje avr-gcc i atmega32 restartuje mi się w momencie wyjścia z funkcji void test(); [syntax=c]#include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> void test(void){ PORTA ^= (1<<PA0); } ISR(BADISR_vect) { PORTA ^= (1<<PA1); } int main(void){ DDRA |= (1<<PA0); DDRA |= (1<<PA1);...
Witam Próbuję wykonać ćwiczenie z kursu Leona Uruchamiałem ten kod pod eclipse Luna z najnowszym toolchainem. Ww właściwościach projektu dla AVR hardware podałem właściwą sygnaturę procka i jego częsttliwość 62000000 Hz , kompilator wykrzykuje ostrzeżenie jak mam definicję zegra na początku kodu #define F_CPU , ale program rusza właśnie z tą prędkością...
Moim problemem jest podzielenie programu, który napisałem na stosowne moduły. Chodzi zatem o pliki *.c i *.h. Kompilacja przebiega właściwie dla nazwijmy to zwykłych funkcji. Problem jest natomiast z funkcjami zadeklarowanymi jako inline. Kompilator nie znajduje definicji takich funkcji. Przykład pliku attiny2313.c (fragment): [syntax=c] #include <attiny2313.h>...
Zadeklarowanie F_CPU nie rozwiązuje problemu, który wg. mnie jest związany z wywoływaniem funkcji foo(). Wgranie na uC (ATmega64) załączonego przeze mnie programu powoduje widoczne, ciągłe miganie diody na porcie C.0, dopiero usunięcie wywołania funkcji foo() powoduje przejście do pętli głównej, która jest wykonywana prawidłowo. Kompilacjia i wgrywanie...
Witam, Próbuję od 0 zacząć przygodę z DS1307 dla Atmega8L ale jakoś mi nie wychodzi. Wzoruję się i przepisuje kod z Przyznam, że na pierwsze wojaże wydaje się to dosyć trudne, obsłużyć DS1307... [syntax=c] #include <avr/io.h> // Załaduj bibliotekę input/output #include <avr/interrupt.h> // Załaduj bibliotekę obsługi przerwań #include <util/delay.h>//...
Zazwyczaj zamykam rolety tylko do połowy, choć zdarza się że zamykam je całkiem. Stosując dostępne na rynku rozwiązania musiałbym stać koło wyłącznika, żeby zatrzymać w odpowiednim momencie ale jako człowiek bardzo wygodny postanowiłem zbudować sterownik, który zautomatyzuje tę czynność. Założenia - możliwość zapamiętania/zmiany punktu półotwarcia,...
Witam, uczę się języka C i od kilku dni się głowię nad pozornie prostą instrukcją w C. ten układ to tester do czujników linii w przyszłym linefollowerze model tcrt5000 zależy mi na tym, że gdy ADC4 wykryje coś to żeby zapaliły się dwie diody, gdy ADC3 to niech zapali się tylko LED1, a gdy ADC5 wykryje niech zapali się tylko LED2, próbowałem wiele instrukcji...
Witam Szanowną Społeczność, problem z którym spotykam się po raz pierwszy jest dziwny i upierdliwy. Otóż mam programik który napisałem jakiś czas temu i wszystko było ok. Powróciłem do niego i okazało się, że program nie zachowuje tak samo jak wcześniej. Małe dochodzenie i okazało się, że program wiesza się przy powracaniu z wywołanej funkcji. Tzn....
Można to zrobić używając setjmp i longjmp pod warunkiem, że to przerwanie, w którym będzie anulowanie zadania nie będzie przerywać obsługi innych przerwań. Kod do zabawy w debuggerze AVR: 1. setjmp / longjmp na pierwszy rzut oka by było miłym zestawem. Ale jak pomyśleć głębiej longjmp by musiał być wołany z przerwania, wywołaniu by pasowało zrobić to...
Podejmuje kolejne próby uruchomienia programu. Dziękuję wszystkim za podpowiedzi - zostawiłem linie ustawiające bity w portach, może są błędne ale nie mają wpływu na działanie programu, poprawię je jak program zadziała. Odnośnie uwagi kolegi ex-or, zakładałem, iż jeśli nie ma zabezpieczenia dla drgania styków to powinna być bynajmniej jakaś losowa reakcja...
Cześć, siedzę nad problemem jakiś czas. Od razu zaznaczam, że nie chcę wykorzystywać VBA bo z jego pomocą już mi się udało to zrobić. Chcę użyć funkcji typowych dla podstawowej wersji Excela do rozwiązania problemu. Opis: Mam listę pionową z numerami tygodnia np. 40, 41, 42... kolejne kolumny są opisane z daną czynnością np. pranie, gotowanie, sprzątanie......
Napisałem już trochę kodu i po próbie dodania funkcji atof() kompilator wystawił nie coś takiego: avr-gcc -mmcu=atmega32 -Wl,-Map=GPS.map main.o adc.o Button.o delay.o getgps.o lcd_2.o timer2.o timerf.o uart.o timer1.o dtoa.o oblicz.o -o GPS.elf d:/winavr-20100110/bin/../lib/gcc/av...
Witam. Mam 2 problemy które wynikły w czasie mojej zabawy z ARM. Mam nadzieję że ktoś mi podpowie co jest nie tak. Mam dwie funkcje które pod AVR działały bezbłędnie a pod ARM już nie do końca chcą funkcjonować. Wypunktuję te problemy. 1. Funkcja "SD_writeSingleBlock" z biblioteki do obsługi karty SD ze strony darhmanitech.com. Funkcja:
Witam, Nie mogę spowodować , aby działała funkcja printf w programie napisamym w Coocoxie. Program się kompiluje, nie ma błedów, widać w terminalu napisy pochodzące od funkcji send_char, natomiast od printfa nie ma. Czy robię jakiś bład: [syntax=c]#include "stm32f10x.h" #include "stm32f10x_gpio.h" #include "stm32f10x_usart.h" #include "stm32f10x_rcc.h"...
Witam, Proszę o poradę. Zestawiłem wyświetlacz 7" wspierany sterownikiem RA8875 z mikrokontrolerem STM32L433. Dane przesyłam po SPI 4-przewodowym (wcześniej równolegle D0-D15 + linie sterujące z identycznym skutkiem) liniami pomocniczymi MPU_wait, RESET steruje osobno. Korzystam z bibliotek dostarczonych przez producenta zestawu (LCD+sterownik). Dane...
Callerem jest main. [syntax=c]int main(void) { int32_t i; int32_t j; fpu_enable(); system_init(); pll_start(); gpio_pin_cfg(GPIOA, 15, GPIO_OUT_PP_50MHz); //LED Testowy while (1) { GPIOA->BSRR = (1 << (9 + 0)); IN = DSP_2(IN, (int32_t*)(XCoef), (int32_t*)(YCoef), Gain, (int32_t*)(x), (int32_t*)(y)); GPIOA->BSRR = (1 << (9 + 16)); delay_us(1);...
Witam Mam pewien problem. Otóż nie bardzo wiem jak napisać funkcję czy kawałek kodu w C, tak aby ten potrafił zliczać przerwania (czyli logiczne zera). Mam na myśli taki program, który rozpoznawałby ilość przerwań (od 1 do 10) i na tej podstawie dokonywał jakiegoś wyboru (powiedzmy, że ustawiałby jakiś port na stan wysoki). Obecny fragment kodu na jakim...
Tak dodałem, pomogło, kompiluje teraz, ale wyrzuca błąd z linkowania: Linking: main.elf arm-elf-gcc -mcpu=arm7tdmi -I. -gdwarf-2 -DROM_RUN -DAT91SAM7XC256 -Os -Wall -Wcast-align -Wimplicit -Wpointer-arith -Wswitch -Wredundant-decls -Wreturn-type -Wshadow -Wunused -Wa,-adhlns=Cstartup.lst -I./include -MD -MP -MF .dep/main.elf.d Cstartup.o main.o...
A jaki to jest "dobry prowadzący" taki co pokaże jak zrobić zeby dioda mrygała i powstawia wszystkim piątki czy taki co każe przeczytać gałke a potem zrobić na zająciach zegarek z możliwością ustawienia godziny na wyświetlaczu 7 segmentowym w ramach zajęc. Jak dla mnie to druga opcja. Popatrz ile jest rozdziałów w tej książce następnie zastanów 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;...
Wzoruj się na tym kodzie poniżej. Napisane dzisiaj według dokumentacji MAXIM a (WinAVR). #define OW 0x10 // PORTB.4 //************************************** unsigned char OW_Reset(void) { PORTB &= ~OW; DDRB |= OW; // pin jako wyjście _delay_us(500); DDRB &= ~OW; // pin jako wejscie _delay_us(70); // sprawdzamy presence...
Witam, niedawno przesiadlem sie z AVR na ARM i mam nastepujacy problem: niektore funkcje wieszaja mi program. Tzn, nie wszystkie - np. dzialaja funkcje obslugi SPI, natomiast jak wstawie cos takiego: void test (void) { AT91C_BASE_PIOA->PIO_CODR = LED1; delayMS(1000); AT91C_BASE_PIOA->PIO_SODR = LED1; return; } i uruchomie...
Działa. Wystarczyło zmienić szukany znak z backslasha na '\n'. Ostatecznie modyfikacja wygląda nastepująco: if (character == '\n') { __fputc_('\n', stream); __fputc_('\r', stream); continue; } Dopracowałem rownież funkcje usart_put_char, zamiast wprowadzać delaya sprawdzam flage czy UART zakończył poprzednią transmisję....
Witam, Mam problem jak w tytule. Podczas debbugowania program wykszacza się w tym samum miejscu, przy wychodzeniu z funkcji procesor wchodzi do przerwania HardFault :(. Program jest stosunklowo prosty. Tworze bibliotekę do obsługi LCD 2x16 i podczas inicjializacji gdy program wychodzi z funkcji GPIO_ResetBits(GPIO_PORT_LCD void STM32_LCDSendCmd(uint8_t...
Hej, mam problem z częścią dotyczącą uśpienia Attiny w programie mierzącym poziom naładowania akumulatora. Mianowicie, sam program podający poziom naładowania akumulatora działa bez problemu, problem natomiast pojawia się gdy próbuję dodać uśpienie Attiny po osiągnięciu określonego czasu działania. Całość będzie ostatecznie "Siedzieć" w pakiecie ogniw...
Freddie Chopin nie wiem co powiedzieć. Masz rację jako funkcję inicjalizującą dałem void lcd_init();. Nawet nie będę pisał ile straciłem na to czasu. Dzięki wielkie;) Nie używasz debugera, że nie wiedziałeś, że program nie wchodzi w tą funkcję?
Cześć, Próbuję napisać bibliotekę obsługującą kilka układów MCP23S17 po SPI niestety zatrzymałem się w momencie przekazania przez wskaźnik lini csPin sterującej konkretnym ekspanderem. Poniżej umieściłem kod, obrazujący problem. Jako że funkcję "EXP_WriteOutput(&expand);"w pętli MAIN chcę mieć jedną, problem pojawia się jak w funkcji "EXP_SetRegister"...
witam To może napisz jeszcze co te diody mają robić :) z kontekstu domniemam że ma sie zapalać jedna po drugiej z odpowiednim opóźnieniem czasowym. Zamiast fcji "czekaj" spróbuj użyć gotowych fcji opóźnienia czasowego "delayms"(info na ich temat jest na forum), i jak coś to ustaw jak najwolnijszy zegar na uC(niewiem jak Atmega ale ja bawie sie attiny...
Temat poruszyłem już w inym wątku dotyczącego uC DS89C430/450, ale zdecydowałem się umieścić go w osobnym ze względu na to, że nie wszyscy pewnie są zainteresowani DS89C430/450, a i problem wydaje się bardziej "uniwersalny". ;-) Problem dotyczy funkcji printf i w zasadzie paru innych z biblioteki <stdio.h>. Mój program po zamknięciu w komentarze...
hę? jest jeden bufor MAM, ktory przechowuje 4 instrukcje kolejne, oraz jeden, ktory przechowuje 4 instrukcje z poczatku ostatniego skoku. i nie wiem o jakich granicach tutaj mowisz. jesli jest to petla (skok ciagle w to samo miejsce) to MAM nie zwolni. Poczytaj jeszcze raz sobie o MAM i o zasadzie działania buforów! Branches and other program flow...
Witaj, Jak zapewne zauważyłeś opóźnienie funkcji _delay_loop_2() zależy od F_CPU ponieważ przeliczanie F_CPU jest w funkcji nadrzędnej _delay_ms(). Delay loop using a 16-bit counter \c __count, so up to 65536 iterations are possible. (The value 65536 would have to be passed as 0.) The loop executes four CPU cycles per iteration, not including the overhead...
Witam! Mam takie pytanie dotyczące programu MHDD. Otóż jaka różnica jest między wpisaniem "erase" w konsoli, a funkcją wywołaną z menu po kliknięciu f4 "ERASE DELAYS DESTRUCTIVE"? I czy po oby dwóch działaniach należy remapować dysk? Dziękuję za odpowiedź i pozdrawiam Rafał
Panowie kod działa jak powinien tylko co jakiś czas pojawia się minus, ale myślę, że to kwestia jakiś zakłóceń. [syntax=c]#include <stdio.h> #include <avr/io.h> #include <util/delay.h> #include "ds18b20.h" #include <avr/interrupt.h> #include <stdbool.h> #define F_CPU 8000000UL #define LED_0 0b11000000 #define LED_1 0b11111001...