Tablice wartosc1,wartosc2,wartosc3 są zbyt małe muszą mieć po 3 elementy. W funkcji hextoul tratujesz przekazaną zmienną jako string kończący się 0, a w tablicach nie masz już miejsca na koniec stringu. Dalej nie przeglądałem.
OK. Ja też jestem w pracy i nie zawsze mogę o tej porze coś robić. Ale dalej: Do testowego używania UARTA przyda się "podmienienie" standardowej obsługi funkcji printf na taką, która wysyła dane przez UARTA do naszej Windowsowej konsoli. Możesz to wpisac standardowo przed obsługą assert_failed() /** * (at)brief Retargets the C library printf function...
To jest program pod ATmega32 ale powinien dzialac #include <avr/io.h> #include <stdlib.h> #define F_CPU 8000000 // 8MHz zegar procesora #define CYCLES_PER_US ((F_CPU+500000)/1000000) // cpu cycles per microsecond // #define UART_BAUD 19200ul //prędkość transmisji w bodach (tu 19200 bodów) #define UART_CONST (F_CPU/(16ul*UART_BAUD)-1...
USART sprzętowo nadaje cały bajt, wraz z bitem startu, stopu i parzystości. PRzerwanie w czasie takiej transmisji nic nie zakłóci. Co najwyżej do nadania kolejnego bajtu minie jakiś czas, ale to nie problem, gdyż każdy bajt ma swój bit startu, w efekcie odbiornik to poprawnie odbierze.
https://obrazki.elektroda.pl/4509007500_... Zapraszam na prezentację https://obrazki.elektroda.pl/1519670000_... Przygodę z APM32F003F6 pozwoli nam szybko rozpocząć płytka Mini Board. Oprócz głównego MCU z przydatnymi do uruchomienia elementami takimi jak rezonator kwarcowy, przycisk RESET oraz testowy, diody LED,...
W książce Tomasza Francuza "AVR Praktyczne projekty" znalazłem bardzo przyjemny sposób na użycie USART w XMEGA posługując się fprintf lub fscanf. Niestety po przejściu na DMA okazało się, że nie da się tak łatwo zastąpić fprintf przy użyciu funkcji wysyłającej dane do bufora i dalej przez DMA do komputera. Znalazłem inny przykład w sieci z wykorzystanie...
Witam, mam problem z odbieraniem danych po usarcie. Jest on skonfigurowany tak: USART_ClockInitStructure.USART_Clock = USART_Clock_Disable; USART_ClockInitStructure.USART_CPOL = USART_CPOL_Low; USART_ClockInitStructure.USART_CPHA = USART_CPHA_2Edge; USART_ClockInitStructure.USART_LastBit = USART_LastBit_Disable; /* Configure the USART1 synchronous paramters...
no dobra a jak zastopic printf gdy nie mam bibloteki stdio.h dla CC5X ?? bo przy tym wymiekam :( bo obecnej podpowiedzi nie jestem wstanie skompilowac a gdy zastepuje printf TXreg to tez wywala kompilacje ;(
Szukałem na internecie poradników do terminala UART i udało mi się zrobić coś takiego z kawałków znalezionych w sieci. Problem polega na tym, że mój kompilator wyrzuca błędy a nie pokazuje mi gdzie one są (i tym samym nie mogę ich skompilować) i jeśli ktoś może sprawdzić poprawność kodu w 1. i 2. main.c(są to dwa odzielne programy w dwóch projektach...
Pewnie jest. Przerwanie -> skasowanie flagi -> prinf po uarcie W trakcie tego kolejne przerwanie -> skasowanie flagi -> prinf po uarcie ..... Przerwanie nie może wywłaszczyć samego siebie. Niemniej jednak idea użycia printf w przerwaniu i to jeszcze z liczbami zmiennoprzecinkowymi... Niezbyt dobry pomysł, zwłaszcza że w tym przypadku printf() alokuje...
Witam, Ostatnio mam przyjemność zabawy z płytką STM32F746NG Discovery. Mam problem z usartem... Nie jestem w stanie odebrać znaku w konsoli mojego komputera. Chciałem zrobić tak samo jak to się robi np.: w Nucleo, czyli korzystam z USARTA2, piszę odpowiednią funkcję do wysyłania znaków i w whilu daje printf... ale tutaj to nie działa. Wszystkie parametry...
Szanowni Forumowicze, uruchomiłem sobie sprzętowego UARTa wykorzystując bibliotekę ze strony atmela. Wszystko działa, łączę się z terminalem na komputerze, wyświetla się to co powinno. Dodałem też funkcję do wysyłania całego łańcucha znaków wykorzystując wskaźnik, gdyż w atmelowskiej bibliotece znalazłem jedynie do wysyłania konkretnych pojedynczych...
Witam Znalazłem na naszym szanownym forum kod w C do obsługi portu RS232 (na PC): #include <windows.h> #include <stdio.h> int main() { HANDLE hCom; //uchwyt portu DCB dcb; //konfiguracja portu BOOL fSuccess; //flaga pomocnicza BYTE RS_buf; //bufor danej DWORD RS_ile; //ilosc bitow wyslanych //otwarcie portu COM1 z prawami RW...
Chcę w jakiś sposób okiełznąć USART, na razie bez DMA. Korzystam z gotowego przykładu, jednak pustki w terminalu. Fizycznie : GND przejściówki USB RS232 podłączony z GND disco, RX, TX kros. stm32f10x_usart.c [syntax=c] #include "stm32f10x.h" #include "stm32f10x_gpio.h" #include "stm32f10x_rcc.h" #include "stm32f10x_usart.h" #include <stdio.h>...
Czujnik to HTU21D. Wysyłam do niego komendy, które są w Datasheet (w załączniku). Chcę odczytać temperaturę w trybie Hold Master. Oto kompletny kod main.c: http://obrazki.elektroda.pl/4783952000_1...
Witam. Niedawno zacząłem się bawić programowaniem mikrokontrolera atmega32 zawartego w zestawie evb 4.3. Pojawił się problem w momencie, kiedy chciałem połączyć zestaw ze swoim laptopem. Kod dla mikrokontrolera: #include <avr/io.h> #include <util/delay.h> #include "lcd.h" void usart_init(unsigned int baud); void usart_transmit(...
Witam, Od jakiegoś czasu stawiam pierwsze kroki w programowaniu PICów. Pisałem sobie jakieś pierwsze programiki na PIC18F66J65, uruchomiłem komunikację z komputerem po USART aż tu pewnego pięknego popołudnia coś się wykrzaczyło i procek pracuje tylko na wewnętrznym oscylatorze. Mikrokontroler mam przylutowany na płytce-przejściówce QFP - DIP. Dołączony...
Kiedy pozbędziesz się wszystkich float i operacji na nich zajętość pamięci spadnie o połowę. Po wyrzuceniu printf zapewne zyskasz jakieś następne 1.5 KiB. ;) Co powiesz na odpowiedź z AVR np. taką: B 1234 2345 6789 gdzie te trzy liczby to np. napięcia w mV.
Dziekuje za odpowiedz. Uzywam windowsowskiego Hyper Terminala :P. Ale dalej mi nie dziala :/. Teraz kod wyglada tak: #include <stdio.h> #include <avr/io.h> #define FOSC 16000000 #define BAUD9600 #define MYUBRR (FOSC/(16*BAUD)-1) #define sbi(var, mask) ((var) |= (uint8_t)(1 << mask))...
Witam! Próbuję zaprogramować mikrokontroler STM32F107, aby współpracował z siecią. Najpierw chciałbym skompilować kod z przykładowym projektem dostarczonym do STM32 jako EthernetDriver, czyli stm32_eth_lib. Przykład napisany jest z użyciem stosu TCP/IP uIP. Całość kompiluje się bez żadnych błędów (ew. warningi) z użyciem kompilatora CodeSourcery G++...
Rozwiązałem już swoje problemy następnego dnia po napisaniu posta, ale nie zdążyłem tu napisać, przepraszam. Dziękuję za porady, mimo że po czasie. Problem z delayem rzeczywiście leżał w priorytetach RTC_Handler i SysTick_Handler. Nie rozumiem tylko, dlaczego SysTick_Handler miał niższy priorytet od RTC, skoro w pliku z wektorem SysTick ma priorytet...
Ja zacząłem programować pice w Proton +. Wogóle na niego nie narzekam, można szybko napisać niezły prog. Może zżera zasoby, ale na przykład nie zauważyłem różnicy w szybkości wykonywania operacji. Próbowałem nauczyć się w C ziomalować, ale on ma wszędzie to Include, co w końcu staje się męczące, a prosty prog długo się pisze :/. Nie można powiedzieć,...
http://obrazki.elektroda.net/65_12471396... Witam Szanownych Forumowiczów Niedawno zakończyłem prace nad urządzeniem, które nazwałem GPS Tracker. Urządzenie to służy do raportowania pozycji samochodów ciężarowych lub osobowych, z wykorzystaniem pozycji z GPS, przesyłanej przez sieć GSM. Wykonanie zostało zlecone przez indywidualnego klienta....
Ok. Przeprowadziłem eksperyment. Jeżeli chodzi o Cortex M3 to dodałem plik z rozszerzeniem cpp i kompilacja przebiegła bez błędów. Tylko nie działa standard C++11 tylko jakiś starszy. Sprawdziłem to dodając słowo kluczowe auto, które podobno jest elementem języka od chwili pojawienia pojawienia się standardu C++11. Poniżej zdjęcie ilustrujące pewne...
Albo się nie zastanawiać i użyć funkcji sformatowanyego wyjścia z rodziny printf.
Ja na szybko złożyłem układ z AVR32DB28 bo taki akurat mam pod rękom. I wykorzystałem SPI1 (od PC0 od PC3, MOSI, MISO, SCK, SS) do komunikacji z MAX31865 i UART0 do wyświetlania wyników. I oto kod który użyłem: https://obrazki.elektroda.pl/9666089600_... https://obrazki.elektroda.pl/8604180000_... A i akurat miałem...
Ten program wysyła bajty odczytane z pamięci jako znaki, a nie jako sekwencje cyfr ASCII. Zacznij od programu, który będzie w pętli co jakiś czas wysyłał np. kolejne cyfry lub litery. Jeśli to zadziała, będziesz wiedział, że masz poprawną transmisję - wtedy włącz obsługę pamięci i ew spróbuj wysyłać jej zawartość zamieniając ją na wartości np. szesnastkowe...
Jak to działa na AVR ? Ano np. tak: #include <avr/io.h> #include <stdio.h> #define USART_USED int lcd_putchar(char c , FILE *stream) { //LCD_wyswietl_znak(); return 0; } FILE lcd_str = FDEV_SETUP_STREAM(lcd_putchar,NULL, _FDEV_SETUP_WRITE); int main() { #ifdef USART_USED stderr=&lcd_str;...
Dobra - kolejny test. Wydaje mi się, że masz lekki problem ze swoimi funkcjami. Może w Twoich funkcjach nie ma oczekiwania na zakończenie poprzedniej transmisji? Wywołaj swoją funkcję wyświetlania znaku mniej więcej tak: USART_SendData(USART1,'a'); USART_SendData(USART1,'b'); USART_SendData(USART1,'c'); USART_SendData(USART1,'d'); USART_SendData(USART1,'e');...
Oj ja w rzeczywistości w ogóle kanału nie wybrałem :D Teraz już działa ;) Ale pozostaje jedna sprawa związana z tym co napisałeś, aby zaczęło to dobrze działać to muszę ustawić w sumię 3 razy ADON :d SWSTART nie trzeba chyba przy ciągłej, ale czemu jest tak z tym ADON? teraz już trochę inaczej: włączam ADON, ustawiam ADC, znów włączam ADON i potem przed...
char znak; while(1) { znak=USART_Recieve(); if(znak=='1') printf("OK\n"); } lub char znak; while(1) { znak=USART_Recieve(); if(znak=='1') { printf("OK\n"); } } Dodano po 42 Chociaż to opóźnienie po tym if'ie i tak bym wstawił.
1. Cele projektu Opracować moduł umożliwiający komunikację z wyświetlaczem 16x1 przez USART. By wysłać dane na wyświetlacz należy wydać instrukcję informującą o rozpoczęciu transmisji " 2. Diagram wdrożenia 2.1 Komunikacja mikrokontrolera z komputerem PC Mikrokontroler PIC16F84A komunikuje się z komputerem PC wykorzystując w tym celu port COM. Konieczne...
witam mam problem z kompilacją kodu na atmege16, Program służy do wysyłania znaków z atmegi16 przez UART na komputer z użyciem standardowych funkcji typu puts, printf itd. Wkleje ci dzialajacy kod na printf'ie porownaj ze swoim: #include <avr/io.h> #define baud ((F_CPU/(predkosc*16UL)&... #define predkosc 2400 #define...
Może konflikt pinów z LCD i SPI. Musisz pokombinować. Zresztą, zrób sobie pusty projekt dodaj fatfs i ten plik, napisz obsługę SPI i powinno działać. A i uzupełnij sobie funkcje int _write(); np. tak żeby korzystała z USART, będzie ci działać printf();.
Po pierwsze - potrzebujesz itoa(), nie atoi(). Po drugie - co znaczy, że sprintf() nie działa? Ściągnij okrojoną wersję ze strony Freddiego (razem z itoa). Jak się odrobinę postarasz, to przekierujesz zawartego tam printf'a na UART - będziesz mógł wysyłać przez UART bez "pośrednictwa" sprintf().
Witam, otóż zasilam owy wyświetlacz napięciem ±3.3V, a także stany logiczne są na tym poziomie. Pin kontrastu jest podpięty bezpośrednio do masy, kontrast wizualnie wydaje się być dobrany idealnie. I problem w tym, że pixele bardzo wolno się zapalają.(wyszło mi ok. ~300ms na pełne zaświecenie pixela) Czy jest to jest maksimum wyświetlacza, czy...
Chyba raczej USART_send(&USARTC0, "Content-length: 11\r\n\r\n"); USART_send(&USARTC0, "s=Temp:10*C"); (% to były elementy stringu formatującego dla printf).
Dzień dobry! mam pytanie do osób znających uC STM32, czy jest tutaj jakiś buffor danych USART? Mam taki kawałek kodu: [syntax=c] while (1) { if (USART_GetFlagStatus(USART2, USART_FLAG_RXNE)){ int i = 0; while(USART_GetFlagStatus(USART2, USART_FLAG_RXNE)){ buffor[i] = USART_ReceiveData(USART2); i++; for(int j=0 ; j < 10000 ; j++){}; } printf("odebrano...
analogicznego uzywam i w innych programach... i dziala... no ale na innych procesorach :/... void Timer_Init() { OCR0 = 150; USART_Transmit('^'); TCCR0 = (1<<CS02)|(0<<CS... TIMSK |= OCIE0; } ISR(TIMER0_COMP_vect) { USART_Transmit('*'); OCR0 += 150; }...
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"...
Obstawiam kłopot z wykonaniem funkcji uart_printf. Na czas jej wykonania masz blokowane wszystkie przerwania. Sprawdź flagę stanu USART - pewnie masz błąd buffer overrun. Jeśli potrzebujesz szybkości dużo wyższych niż 9600bps, to pomyśl też o XMEGA, w której odbiór danych z USART możesz zrealizować przez DMA, dzięki temu i kilka Mbps nie jest problemem.
Czy dobrze odczytuję, że RX i TX mogę podłączyć do pinów PB0 i PB1? Tak dobrze odczytujesz na PB0 i PB1 jest USART3. I wtedy możesz używać PWM na pinach portu A. I tu masz przykładowy program z TB3216 który przerobiłem aby wykorzystywał UART na pinach PB0 i PB1. [syntax=c] #define F_CPU 3333333 #define USART3_BAUD_RATE(BAUD_RATE) ((float)(F_CPU * 64...
Tak jak psałem, printf sam w sobie wysyła dane tylko do strumienia standardowego stdout. To co się z nimi stanie zależy od samego strumienia. Otwierając go musisz podać funkcje zapisu i odczytu znaku ze strumienia, dopiero te funkcje są odpowiedzialne za wysyłkę danych przez konkretny interfejs. Stąd też najlepiej stworzyć dwa nowe strumienie, podając...
Mam problem z czytaniem szyny 1 -wire http://obrazki.elektroda.pl/3067281100_1... mam 4 termometry czytam pojedynczo ich adresy poprzez OW_Write(0x33); i mam następujące wyniki 0100010100111010010001010111110111001000... 0000010100111010010001010111110111001000... -''- 1000010100101010110101011001110111001000...
aster11: w zupełności się z Tobą zgadzam dlatego pęka mi już głowa. Do wyświetlania wyniku używam funkcji: usart_putf (rxData); z biblioteki AVRLIB. Oto kod tej procedury: void usart_putc(char data) { while (!(UCSRA & 0x20)); // Wait untill USART data register is empty // Transmit data UDR = data; } void usart_puts(char...
Dzien dobry, Bardzo proszę o pomoc w wysyłaniu komend do modemu z Pic'a. Używam Pickit3 z Ready for PIC. Wylutowałem J2,J3. Zbudowałem układ na MAX232. Na oscyloskpie widzę ze Tx coś przesyła. Ale modem już nie odsyła. [syntax=c] #include <stdio.h> #include <htc.h> #include "usart.h" /* A simple demonstration of serial communications which...
Witam, Zmieniona wersja USART_Transmit_Word: void USART_Transmit_Word( char *slowo) { char n=0; while (slowo[n]) { while ( !( UCSRA & (1<<UDRE)) ); UDR = slowo[n]; n++; } } Tak to jest użyte: USART_Transmit_Word(LOSCA); USART_Transmit_Word(TOSCA); USART_Transmit_Word(SCA);...
Tym razem ma problem z RS232. Spróbowałem na początek skorzystać z gotowego przykładu HiTech, a nie udało mi się podczas kompilacji main.c #include <stdio.h> #include <htc.h> #include "usart.h" void main(void){ unsigned char input; INTCON=0;// purpose of disabling the interrupts. init_comms();// set up the...
Witam. Chciałem zrobić termometr bezprzewodowy. Na razie mam problem z komunikacją UART. Nadajnik działa na 100 % odczytywałem temperaturę na komputerze prze ft232. Ale odbiornik nie odczytuje temperatury. W tej chwili obydwa mikrokontrolery są spięte przewodem TX ->RX Kod Nadajnik [syntax=c]#include <stdio.h> #include <avr/io.h> #include...
Witam Od jakiegoś czasu próbuję przeprowadzić odbiór danych z UART z wykorzystaniem DMA. Jeśli chodzi o konfigurację UART to jest ona przeprowadzona prawidłowo, ponieważ mogę dane wysyłać jak i odbierać ręcznie. Problem pojawia się przy próbie zaprzęgnięcia do odbioru DMA. Dane w buforze odbiorczym nie są aktualizowane (po zainicjalizowaniu bufora wartościami...
Nie widzę sensu w używaniu stringów wstawiając w nie 0. Dużo funkcji, np printf, bazuje na tym, że na końcu stringa napotka na 0. Podobne rzeczy spotkasz chociażby bibliotece radzia do hd44780 czy jakiejkolwiek innej operującej na stringach. Coś a la: [syntax=c]void usart_send(char *data) { while(*data) LCD->DR = *data++; } ... int main() { ... usart_send("ala...
Toolchain : C:\Program Files\GNU Tools ARM Embedded\4.9 2014q4 Debugowanie programu : http://obrazki.elektroda.pl/8776950400_1... Gdzieś w sieci wygrzebałem: In case that link ever disappears, what you have to do is ensure that your gcc command has "-Wl,-u,vfprintf -lprintf_flt -lm". This translates to: force vfprintf to...
Poczytaj o FDEV_SETUP_STREAM np. (jeszcze) tutaj: http://www.appelsiini.net/2011/simple-us... W definicji twojego strumienia (w przykładzie - który ci podałem) brak jest funkcji pobierającej znak ze strumienia. Funkcję zdeklaruj wg podanych przykładów i przypisz jako drugi parametr tego makra (obecnie NULL). Natomiast trzeci parametr przestaw...
Hej, osobiście stosuję następujące rozwiązanie: - kwarc zewn. 3.6864 MHz - timer2 zliczający z prescalerem 1024, do 36 (po tym się resetuje i liczy na nowo od 0) W efekcie mam "rtc", który przepełnia sie 100 razy na sekundę (3686400/1024/36), a zatem mogę odliczać z dokładnością do setnych sekundy. Chyba wystarczająco. Poniżej kod w C, kompilator avr-gcc...
Mam problem z zapisem informacji do pliku txt, a dokładniej z funkcją "fopen", która przy wywołaniu zwraca error: main.c:(.text.startup.main+0xa4): undefined reference to `fopen' Poniżej zamieszczam kawałek kodu. char n[] = "6E436C703186B19CBC6BFD77DFD8FF3D85... char subn[40]; strncpy ( subn, n, 5); subn[5]...
W Tera Term mam ustawione 8-bitów danych, bez kontroli parzystości, 1 bit stopu. Szybkość transmisji jest ta sama. Odczytywanie w Tera Term "Hello world" działa. Coś takiego napisałem ale nie działa. Jest w stanie ktoś coś podpowiedzieć? [syntax=c]void send_char(char c) { while (USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET); USART_SendData(USART2,...
Chodzi ci o tą funkcję z CMSIS Dodano po 1 Nie o to ci chodziło :) Doczytałem i zrobiłem tak jak jest to opisane w readme.txt linaro opcje dla linkera LD_FLAGS += --specs=rdimon.specs -Wl,--start-group -lgcc -lc -lc -lm -lrdimon -Wl,--end-group usunąłem plik syscals.c i wszystko ładnie się skompilowało Odpaliłem OpenOCD z opcjami openocd -f scripts/board/stm32f4discovery.cfg...
Witam Problem jak w temacie, przy próbie wysłania znaku z terminala do atmegi, program się zawiesza. [syntax=c]#define BAUD 2400 #define MYUBRR F_CPU/BAUD/16-1 #include <stdio.h> #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> volatile unsigned char odb_flaga =0;//flaga informująca main o odebraniu liczby...
[syntax=c]#include <avr/io.h> #include <avr/interrupt.h> #include <avr/wdt.h> #include <string.h> #include <util/delay.h> #include <stdio.h> #define BAUD 4800 #define MYUBRR F_CPU/BAUD/16-1 void USART_init(unsigned int myubrr) { UBRRH = (unsigned char)(myubrr>>8); UBRRL = (unsigned char)myubrr; UCSRB = (1<<TXEN)|(1<<RXEN);...
Zaczynam powoli pisać taką najprostszą obsługę ADC. Chciałbym dokonywać konwersji w pętli while w main. Generalnie jest może jakiś algorytm postępowania w trakcie inicjalizacji przetwornika? Widzę że są pewne różnice odnośnie AVR i nie jestem tego w stanie zrobić przez całkowitą analogię... Przedstawię to co zrobiłem: main: [syntax=c] #include <stdint.h>...
STM32 + FreeRTOS 7.1.0 + IRQ Siedze już dłuższą chwilą nad takim czymś. Mam zdefiniowaną kolejkę i zadanie: xQueueReceive definiuje po ilu taktach (czyli ms) zadanie ma przechodzić w stan ZABLOKOWANE. Co bym tam nie wpisał zadanie się nie blokuje i działa. Ilość znaków w kolejce się zgadza - po wyświetleniu ostatniego znaku z kolejki zwraca 0. Próbowałem...
#define BAUD 2400 #define MYUBRR F_CPU/BAUD/16-1 #include <stdio.h> #include <avr/io.h> #include <util/delay.h> /* Inicjuje port szeregowy AVRa */ void USART_init(unsigned int myubrr) { /* Ustala prędkość transmisji */ UBRRH = (unsigned char)(myubrr>>8); UBRRL = (unsigned char)myubrr; /*...
Dzięki wielkie za odpowiedzi, oczywiście było tak jak mówicie, bit w rejestrze DIER + błędnie ustawiony bit UDIS, teraz już działa ;) co do wartości w rejestrach PSC i ARR to były zupełnie przypadkowe na razie :) a TIM2_CR1_CEN_bb = 1; to dostęp do bitu CEN przez bitbanding i tak, włącza on timera ;) Jeśli chodzi o printf Freddiego - on napisał swoją...
Bajki nie bajki, ten http://www.elektroda.pl/rtvforum/topic18... przypadek też był trywialny. Takie rzeczy tylko w erze: /* * main.c * * Created on: 13-02-2011 * Author: tymon_x */ #include <stdio.h> void statyczna_zmienne(); int main(void) { int magiczny_licznik; for(magiczny_licznik = 1; magiczny_licznik...
Nie trzeba - masz na schemacie, który UART jest podłaczony do st-linka. w 446RE np. USART2 w innych nie pamiętam - ale można to sobie od razu na schemacie ze strony STM zobaczyć.
Witam Chciałbym się dowiedzieć, gdzie jest problem w programie poniżej. [syntax=c] #include <stdio.h> #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include <avr/eeprom.h> #include "encoder.h" #define F_CPU 16000000L #define BAUD 57600 #define MYUBRR F_CPU/BAUD/16-1 #define SET_LED PORTD |= (1<<PD7)...
Operatory << w C++ można przeciążyć, w efekcie będą one wykonywały dowolną funkcję, jakiej zapragniesz. Także wystarczy stworzyć klasę obsługi LCD i przeciążyć te operatory, aby uzyskać np. coś takiego LCD<<"Napis";. W przypadku urządzeń i ich instancji warto pomyśleć też o ich implementacji jako singletony. Jest to wygodne i odporne na...
Witam, Mam jeden z dwóch często występujących problemów. Nie wiem czy to wina konstrukcji czy kodu. Z napięcia około ~12V mam zrobiony dzielnik napięcia (4K7 i 8K) tak, że na wyjściu mam około 2.44V. Po wgraniu kodu otrzymuje następujące wyniki: 2715 $ 2723 $ 2721 $ 2718 $ 2717 $ 2715 $ Jak widać, rozbieżność jest w granicy moich oczekiwań jak na rezystory...
poprawiłem błędy, ale nadal nie działa. Dodano po 1 Wciąż nie znam całego kontekstu, ale zaczniemy od tego, co już wiemy. Upewnijmy się, że wszystkie elementy są poprawnie skonfigurowane. 1. W funkcji `USART_Init()`, skonfiguruj rejestry UART do odbierania i nadawania danych. Sprawdź, czy prędkość BAUD jest prawidłowo ustawiona. 2. W funkcji `USART_RX_init()`,...
Tak z ciekawości... Jaki masz kompilator??;D Bo jak się kiedyś bawiłem PIC16, to ciężko było dorwać coś sensownego:D A co do pytania... Czytanie masz opanowane... Spoko... Zapis... Hmmm... Skoro Ci ten printf nie działa, to może czas zajrzeć do dokumentacji?? Generalnie wysłanie czegoś, to po prostu przypisanie wartości zmiennej do rejestru TXREG, co...
Witam. Próbuję przeprowadzić komunikację między ATMEGA16 a PC. Kod znalazłem na jednej ze stron i powinien być ok. Zmieniłem go tak aby wysyłał słowo test. Niestety w konsoli otrzymuję inne znaki niż te, które wysyłam. Znaki nie są losowe zawsze te same tak jakby był problem z kodowaniem. Przejściówka sprawdzona, sprzętowo też racze ok, program testowy...
Witam. Dzień cały męczę się żeby zrobić głupią komunikację opartą na RS232->PC gdzie nadajnikiem jest uC amtega8-8pu i nie mogę dojść co robię nie tak... oto mój kod (mocno skrócony ale nadal nie działający tak jak powinien) #include <avr/io.h> #include <stdio.h> #define BAUD 9600 #define MYUBRR F_CPU/BAUD/16-1 void USART_init(unsigned...
Na końcu artykułu o USART napisałem: Problem liczb i znaku zapytania w terminalu Jeżeli wysyłasz do terminala liczby w postaci kodów ASCII, możesz się natknąć na problem pojawiającego się w zamian jedynie znaku zapytania. Rozwiązanie problemu znajdziesz tutaj: Problem znaku zapytania podczas konwersji float do znaków ASCII
Dzięki.Nie miałem wczoraj okazji sprawdzenia więc na razie nie powiem co mi wyszło.Ciekawią mnie dwie rzeczy. W DevC++ gdy pisałem funkcje to wyglądała ona mniej więcej tak: sms[255]={"hgjgjg"} i gdy chciałem z tego wyjąc np: trzeci znak to pisałem printf (sms[2]) Jesli tu chcę zrobić coś takiego to gdzie jest ta tablica z której mam to wyjąć?? buffer[FIFOSIZE]...
tu jest kod prostego programu który podgląda to co dzieje się na magistrali, filtruje odpowiedź jednego z urządzeń i obrazuje na ekranie to co jest odbierane. jest tam też pomocniczy licznik który pozwala mi analizować ile tych ramek (które są odpowiedzią urządzenia może być pomijane. Jedyne "przetwarzanie" ramki to wyświetlenie jej zawartości na ekranie....
Zamierzam użyć pilota do dekodera philips PVR 7201/91 jako nadajnika podczerwieni. Odbiornik TSOP 1136 (lub 38, czy to coś zmienia??). Aby wiedzieć co dokładnie jest odbierane przez odbiornik przy naciśnięciu poszczególnych przycisków, napisałem program, którego efektem ma być wyświetlenie elementów tablicy, której elementy są czasami trwania kolejnych...
Jeśli w jakimś kodzie występuje wspomniana przez kolegę właściwość to proszę go wkleić, bo na pewno nie jest to kod z pierwszego postu tego wątku. No to proszę bardzo. Jest to mały wycinek mojego programu przygotowany tak, aby się skompilował, który działa dokładnie tak jak opisałem. Rzutowanie kolejnej struktury na bufor niszczy poprzednią strukturę....
Cały kod z atmegi "slave": Krótko opisując to adres atmegi jest ustawiany na 4 pinach, moze byc wartość od 0 do 15. Następnie w komendzie jest wysyłany adres po literce T, czyli np. T07049... to znaczy adres 7. Adres z komendy jest porównywany z adresem na pinach i jezeli jest zgodny to wykonuje obliczenie. Jak nie jest to nic nie robi. Być może problem...
Witam, zamierzam pomiędzy dwiema Atmegami32 przesłać pomiar temperatury, przewodowo, za pomocą SPI. Linie MISO, MOSI, i SCK podłączyłem ze sobą, SS mastera jest na masie, SS Slave'a także. Temperaturę przez pewien czas przesyła prawidłowo, jednak po pewnym czasie, na wyswietlaczu Slave'a sa glupoty, jak odłączę na chwilę kabel SS Slave od masy i znowu...
Witam. Chciałbym przerobić wagę łazienkową w taki sposób aby wynik był odczytywany przez atmegę. Jako wzmacniacza użyłem układu INA125 Czy jeżeli układ INA 125 zasilam napięciem 5V to napięcie referencyjne 5 volt nie osiągnie tego poziomu i będzie wynosić 4,48 V z uwagi na zbyt niskie napięcie zasilania? Cały mój problem jest taki że mostem bez obciążenia...
Serdecznie dziękuję za odpowiedź rb401. Zmodyfikowałem kod: https://obrazki.elektroda.pl/7556589300_... warningi znikają po usunięciu volatile sprzed deklaracji zmiennej buf1, ale nic się nie pojawia w terminalu Dodano po 36 To trochę dziwne, bo wychodzi na to, że kompilator krzyczy, że zmienna uint8_t buf1 jest niezgodna z tą którą...
Złe podłączenie biegunów odpada mam zrobione tak że do wejścia stabilizatora mam podpięte takie gniazdo DC z takim bolcem w środku, stabilizator zasilałem z zasilacza sharp 12,9V 3A ze starego laptopa (bardzo stary taki co miał system operacyjny ms dos xD) do zasilania układów używam go już od ponad 2 lat i nigdy nie było problemów z nim. Atmegę zaprogramowałem...
Trzeba posłużyć się wskaźnikiem, ponieważ w C nie przekazuje się całej tablicy (czyli np. ciągu znaków) do funkcji, lecz tylko jej adres. Tymczasem kolega jako argument funkcji podaje zmienną typu char. Proponuję wklepać tak: void pisztekst(char *tekst) //wysyłaj tekst { char zn; char nr=0; while(1) //pętla do pobierania pojedynczych...
Cześć, skonfigurowałem DMA i 2 UARTY (właściwie jeden USART, jeden UART), tak żeby odbierać dane z GPSa na UART4 i poprzez DMA przesyłać dane na stringa, a następnie wysyłać do putty`ego przez USART2. Na pewno dobrze skonfigurowałem UARTy, dane odbieram, natomiast DMA nie działa. Pewnie popełniłem błąd gdzieś w konfiguracji, ale porównywałem ją z różnymi...
Witam, postanowiłem zrobić prosty sprzętowy dekoder midi na Atmega16, kwarc 14.7456, błąd baudu około 1.5% (dopuszczalny zgodnie z notą katalogową). Samo połączenie przy klasycznym baudzie np. 38400 jest w porządku i znaki wysłane z terminala są poprawnie interpretowane i procesor odtwarza na piezo skalibrowane dźwięki (najniższy ton - 27 dźwięk), niestety...
Dzień Dobry Chciałem zapoznać się z konfiguracją przerwań zewnętrznych. I mam pewien problem. Wydaje mi się, że rejestry skonfigurowałem dobrze. Założenie jest takie, żeby wygenerować sygnał prostokątny na pinie następnie podać ten sygnał na pin który będzie odpowiedzialny za przerwanie zewnętrzne. W przerwaniu chciałbym zmieniać stan diody. Przykład...
Dzięki wszystkim za pomoc. Oto mój program: [syntax=cpp] while(1) { dana = USART_Transmit_back(); // odczyt temperatury if (dana == 49) // 49 to tak naprawdę 1 wysyłana z kompa, zignorowałem dlaczego:) { PORTA = 0x01; // zapalenie diody, żebym wiedział która dana aktualnie jest czytana if(ds18b20_ConvertT()) /* Funkcja 'ds18b20_ConvertT' wysyła do układu...
Trochę zmieniłem twój program, nie kompilowałem więc może się coś wkradło ale wydaje mi się że lepiej będzie odbierać znaki w przerwaniu. #include <avr/io.h> #include <util/delay.h> #include <stdio.h> #include <string.h> #include <avr/interrupt.h> #define F_CPU 8000000ul // 8Mhz #define UART_BAUD 19200ul // prędkość transmisji...
Nie wiem jaka jest implementacja. Jak sprzętowa to po transmisji sprawdzać stan flagi TXC - zamiast delay wstawić coś w stylu: while(!(UCSRA & (1<<TXC))); . Ewentualnie nie używać printfa tylko skrobnąć własna procedurę do wysyłania danych przez USARTa?
Witam mam taki programik do odczytu ROM CODE czyjnika ds18b20: [syntax=c]#include <avr/io.h> #include <util/delay.h> #include <stdio.h> #include "ds18b20.h" /* Prędkość transmisji 2400 */ #define BAUD 2400 #define MYUBRR F_CPU/BAUD/16-1 /* Inicjuje port szeregowy AVRa */ void USART_init(unsigned int myubrr) { /* Ustala prędkość transmisji...
A zainicjowano porty USART0 lub USART1 ? Może jednak kawałek kodu ?
Prosze bardzo, zmenne oraz main. Zakomentowane linie sluza do odczytu temperatury z ds1820, wyswietlania jej na LCD czy tez zapiswanie do eepromu. [syntax=c]#include <avr/io.h> #include <util/delay.h> #include <stdio.h> #include <stdlib.h> #include <util/twi.h> #include "hd44780.h" #include "ds18b20.h" #include "i2cds1307.h"...
Witam. Próbuję napisać program na uC odczytujący temperaturę z jednego czujnika DS18b20. Pin Data podpiąłem do portu A pin 2 (RA2). uC to PIC16F88. DC18B20 podłączyłem do ego samego zasilania co procesor. Sprawdziłem działanie funkcji RESET_PULSE i wygląda, że DS odpowiada (po odpięciu pinu DATA funkcja zwraca błąd) Niesetety niezależnie od temperatury...
Witam, mam problem z programową implementacją I2C. Po zczytaniu godziny z PCF'a pokazuje mi same zera i nie zlicza czasu. oto kod programu: #include <p18cxxx.h> #include <stdio.h> #include <delays.h> #define SDA TRISAbits.TRISA3 #define SCL TRISAbits.TRISA4 #define SDA_IN PORTAbits.RA3 #define SCL_IN PORTAbits.RA4 void i2c_init (void)...
Cześć Od razu nadmienię, że jestem w tym początkujący. Posiadam mikrokontroler STM32F100C4T6B oraz moduł GY-50 L3G4200D. Próbuję nawiązać połączenie za pomocą interfejsu I2C i wyświetlić informację na komputerze kominukując się po UART, który na pewno działa. Jeżeli chodzi o połączenie to jestem na 99% pewny, że jest dobrze. Korzystam z programu STM32CubeMX...
Witam ponownie, mam teraz niezwykłą zagadkę, tak więc posklejałem kawałek kodu który obsługuje USART + Ethernet - program polega jedynie na tym że jak odbierze jakąkolwiek ramkę Ethernetową to powiadomi o niej i wyśle przez RS-232 MAC address nadawcy i odbiorycy (przy czym tutaj kwestia estetyczna jest niedopracowana) - tak czy inaczej kod ten przetestowałem...
Witam, mam pytanie odnośnie przesyłania pomiaru temperatury z czujnika DS18b20 przez RS232 do PC. Korzystam z płytki edukacyjnej: http://are.net.pl/?id=products&cmd=9... Do uC mam podłączony czujnik DS18b20, wyświetlacz LCD. Pomiar temperatury na LCD wyświetla się poprawnie, to samo chcę wysłać przez RS232 do PC i już nie działa, w ogóle...
Witam, piszę ostatnio program na Atmega16, odtwarzający melodie midi, przy wolniejszych utworach wszystko działa wspaniale, przesyłałem nawet informację na terminal i bajty wspaniale się zgadzają. Generalnie przychodzą 3 bajty, z których pierwszy jeśli jest równy 90, gram nutkę występującą po nim, jak 80 to ją wyłączam, jak 0xC0 i wyżej do 0xC9 to znaczy...
Faktycznie, rozwiązanie kwestii działania SPI było dosyć proste i po sprawdzeniu - SPI działa. Odczytuję zapisany wcześniej rejestr poprawnie. Teraz mam inny problem. Poniżej zamieszczam program z pliku main.c, w którym są dodane miejsca wysyłania kolejnych numerów przez UART i program zatrzymuje mi się po wysłaniu numeru 88. Nic więcej się nie dzieje,...
Ten program wprowadza mojego STM w tryb uśpienia, ale go nie wybudza, macie jakieś pomysły jak to rozwiązać żeby się wybudzał? Wewnątrz while jest kod wykonawczy zadanej funkcji, w tym momencie działa to tak, że po podłączeniu zasilania wykonuje się ten program, po wypełnieniu licznika przechodzi w tryb sleep i już z niego się nie wybudza. Dodam, że...
usart printf printf winavr printf eclipse
akumulator renault nissan direct pioneer czerwona kontrolka oznaczać
duplikaty plików total commander zaznaczanie
Piec Wolf COB-2/COB-2-TS: Niskie ciśnienie wody i brak uruchomienia Krótkoterminowy zespół rozrządu paliwa - czujniki i wartości