Obiecałem działający programik. Działa na 100%. Jest to progrtam, który wysyła stan temperatury z DS18B20 do kompa, ale dla Ciebie najistotniejszy jest sposób komunikacji. Jest wysyłane zapytanie i uC zwraca odpowiedź. Jak uporasz się z krzaczkami, to program Ci się przyda. Można zrobić bardzo prosty protokół wymiany informacji. #include <avr/io.h>...
https://obrazki.elektroda.pl/2212041800_... Niniejszy projekt to nic odkrywczego, ale może się komuś przyda. Czasem potrzebujemy wygenerować sygnał PWM dla większej ilości kanałów a akurat nie mamy pod ręką dedykowanego układu - tak było w moim przypadku gdy robiłem mały projekt z oświetleniem i wentylatorami przy "modowaniu PC" -...
Witam. Nie posiadam wyświetlacza LCD ani 7segm. chciałem nauczyć się obsługi DS18B20 niestety na ekranie terminalu do odbioru sygnału z RSa widnieje dziwna wartość "1360" . UART działa poprawnie. Procesor to Atmega8 z wewnętrznym 8MHz, czujnik podpiłem do PB0 i dałem rezystorek 4,7kłoma. Proszę o jakaś sugestie. #define F_CPU 8000000UL // 8 MHz #define...
Witam Poszedłem za twoją radą i odpaliłem najpierw rs232 #include <stdint.h> #include <avr/io.h> #include <util/delay.h> // Define baud rate #define USART_BAUD 9600ul #define USART_UBBR_VALUE ((F_CPU/(USART_BAUD<<4... void USART_vInit(void) { // Set baud rate UBRRH = (uint8_t)(USART_UBBR_VALUE&g...
//Ustawienie Baud Ratu , po obliczeniach wyszla mi wartosc 12 UBRRH = 0x0;//(ubrr_value>>16); UBRRL = 0x12;//ubrr_value; To jaką wartość wpisujesz? 12 czy 18=0x12? Popraw i pewnie będzie działać.
Witam, Chciałem sprawdzić czy będę dostawał odpowiedzi na wysłany komunikat. W tym calu wrzuciłem poniższy program na ATiny2313. #include <avr/io.h> #include <inttypes.h> //This function is used to initialize the USART //at a given UBRR value void USARTInit(uint16_t ubrr_value) { //Set Baud rate UBRRL = ubrr_value; UBRRH = (ubrr_value>>8);...
Przeniosłem #include na początek, zmieniłem na 4800, ale ten sam błąd :/
Ustawiłem źródło taktowania na zewnętrzny kwarc 14,7456 MHz. Program: http://obrazki.elektroda.pl/1652325000_1... Transmisja przebiega pomyślnie bez błędów, co widać na załączonym obrazku.
Witam! Mam problem z odbieraniem stringów przez USART. Chcę, aby po wpisaniu do terminala na komputerze "abc", mikrokontroler odesłał "OK". Kod programu: [syntax=c]//#define F_CPU 14745600 #include <avr/io.h> #include <util/delay.h> #define USART_BAUDRATE 9600 #define BAUD_PRESCALE (((F_CPU / (USART_BAUDRATE * 16UL))) - 1) unsigned char...
Jak wrzucę funkcję wyświetlającą wynik na wyświetlaczu wracam do punktu wyjścia. Układ nie odbiera danych z drugiego mikro kontrolera. Bynajmniej tak to wygląda. Nie wiem czy o to Ci chodziło [syntax=c]#include <stdio.h> #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include "hd44780.h" #define USART_BAUDRATE...
Try this code. Compiled in Atmel Studio 6.2: Main program: http://obrazki.elektroda.pl/5925526400_1... I hope that right now its clear, and this code will work. Unfortunatly i haven't this processor to test it.
Witam, zmontowałem sobie prosty układ do komunikacji z PC. Komunikacja następuje przez przejściówkę USB <>UART opartą o FT232R. Wszystko pięknie działa do momentu, kiedy zmieniam baud rate na <190 - mikrokontroler sygnalizuje, że taki baud rate jest możliwy do ustawienia, natomiast po zmianie w Real term komunikacja nie następuje. Poniżej wklejam...
Dzień dobry:) Mam kolejny problem. Atmega nie może odczytać tego co wysyłam z komputera. Do komputera elegancko wszystko dochodzi ale w drugą stronę już to się nie udaje. Posiadam http://obrazki.elektroda.pl/5367414100_1... (T1OUT to TX a R1IN to RX w ft232) Płytka testowa: http://obrazki.elektroda.pl/7785833400_1...
Witam. Może temat artykułu nie jest za dobry, ale nie wiedziałem jak to opisać dokładniej. Mam taki problem, od kilku tygodni próbuję połączyć Amtege8 poprzez UART z komputerem. Kiedy budowałem przejściówkę opartą o układ MAX232 to chyba spaliłem mój port COM w komputerze bo teraz to nawet echo na tym wejściu nie działa. Na wtyku jest napięcie na wszystkich...
Witam oto mój kod obsługi przetwornika A/C i niestety jest problem w terminalu odbieram tylko same jedynki. #define F_CPU 8000000 #define UART_BAUD4800 #define UBRR(F_CPU/(16ul*UART_BAUD)-... #include <avr/io.h> #include <avr/interrupt.h> #include <string.h> #include <stdlib.h> //Inicjalizacja UARTU void USARTInit(unsigned...
Witam Problem udało się rozwiązać. Przelutowałem jeszcze raz max232. W tej chwili avr odbiera dane (zwraca echem w celu sprawdzenia) a w zależności od wyniku zaświeca jedną z 4 diod. Jest to najprostsza komunikacja Uart dla atmega32 bez buforów i korekcji transmisji jednak dla moich celów w zupełności wystarczy. Dodatkowo wrzuciłem funkcję wysyłania...
Jestem początkujący w programowaniu mikrokontrolerów i mam problem z obsługą przerwań w Atmega8. Mam taki oto, bardzo prosty program znaleziony w sieci: #include <avr/io.h> #include <avr/delay.h> #include <avr/interrupt.h> #define F_CPU 1843200 #define USART_BAUDRATE 19200 #define BAUD_PRESCALE (((F_CPU / (USART_BAUDRATE...
Witam Próbuję napisać obsługę pilota, który używa kodowania [url=http://www.ustr.net/infrared/nec.sh... Następnie chcę przesłać kod na okno terminala za pomocą USART. Próbuję to realizować bez użycia funkcji typu delay_ms(), zamiast tego chcę użyć przerwań. Idea jest taka, że po pojawieniu się pierwszego zbocza od odbiornika podczerwieni, wywoływane...
Jasne, tu masz całkowitą racje UCSRC |= (1<<URSEL)|(1<<U... tej 3 ma nie być - aż sam sie dziwie,że coś takiego napisałem. Fakt, datasheet wskazuje na te sam adres... Nie zauważyłem tego wcześniej. Dzieki wielkie za to! Ale tematu na wszelki wypadek jeszcze nie zamykam. Dodano po 32 Niestety, dalej...
zamiast TIMSK1 użyj TIMSK gdzie znajdziesz ICIE1 PSRSYNC w M32 nazywa się chyba PSR10 i jest w SFIOR a nie w GTCCR jak w M168 Tak, to dało rozwiązanie, że kod mi się kompiluje. Problem w tym, że na wejście dostaje sygnał 50 Hz (ramka trwa 20ms) a sygnały wysoki w przedziale 0-2 ms. Obojętnie jakie dam wypełnienie (0-2ms) to ciągle na z tego kodu otrzymuje...
Witam, miałem oto taki kod jak poniżej, działał normalnie czyli po resecie wysyłał liczbę 23 w kodzie ASCII. [syntax=c]#include <avr\io.h> #include <inttypes.h> #include <util\delay.h> #include "uart.h" const uint8_t tabela_losowa[16] = {66, 11, 89, 100, 45, 2, 67, 24, 65, 10, 33, 6, 91, 21, 15, 72}; int main(void) { uart_init(); uart_wyslij_int(23,...
Mam problem z ukladem PL-2303 firmy prolific. Pochodzi ze starego kabla do telefonu nokia z USB po stronie PC oraz rs po stronie wyjscia ( 3 kabelki, GND,rx,tx). Testowalem go robiac null - modem, przy uzyciu programu COM Terminal .NET na windows vista ( vista wgrala drivery z netu dla tego ukladu ). Dzialalo swietnie! Dostawalem echo. Układ emulował...
proboje zrobic odczyt pastylek na atmega32. procek dziala wewnetrznym rezonatorze 8mhz. kod wziolem ze strony www.mikrokontrolery.net w orginale mial to byc termoetr ale powinien dzialac ze wszystkim co jest na 1wire przerobilem program tak zeby to co odbiera z 1w wyslyl na rs232 do PC no i nie odbiera nic(0x00) kod: #include <avr/io.h> #include...
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)...
Po pierwsze proponowalbym zmienic troche ta funkcje: void wyslij_znak(unsigned char znak) // bylo: unsigned int { if (znak == '\n') znak = '\r'; // bylo: wyslij_znak('\r'); while (!(UCSRA & (1<<UDRE))); UDR = znak; } A tak w ogole to masz moj fragment kodu: :D typedef unsigned...
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....
Witam Tak jak w temacie mam napisałem program w bascomie który ma za zadanie zapalać cztery diody led po odebraniu po RS232 cyfr od 1-4 i chodzi to bez problemu ,ale teraz gdy uczę się języka C postanowiłem ten sam program przenieść na C i już nie jest tak dobrze.Objaw jest taki gdy wyśle 1-Zapalają się i gasną diody "STROBO I KULA" gdy 2-Tak sama 3-Też...
Witam wszystkich. Mam taki problem na którym stoję już kilka dni. Mianowicie tak: Posiadam przejściówkę USB-RS opartą o układ PL2303x przez którą to chcę się komunikować z ATmegą16. Przejściówka była dorzucona do zakupionej na wiadomym serwisie aukcyjnym płytki testowej do mikroprocesora. Po podłączeniu przejściówki do portu usb w PC generalnie wszystko...
Używam biblioteki pana Mirka. [syntax=c]/* * mkuart.c * * Created on: 2010-09-04 * Autor: Autor: Mirosław Kardaś */ #include <avr/io.h> #include <avr/interrupt.h> #include <stdlib.h> #include "mkuart.h" // definiujemy w końcu nasz bufor UART_RxBuf volatile char UART_RxBuf[UART_RX_BUF_SIZE]; // definiujemy indeksy określające ilość...
[syntax=c]#define USART_BAUDRATE 2400 #define BAUD_PRESCALE (((F_CPU / (USART_BAUDRATE * 16UL))) - 1) #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include <inttypes.h> #include <hd44780.c> unsigned char CRC8tab[256] = { 0x00,0x07,0x0E,0x09,0x1C,0x1B,0x12,0x15, 0x38,0x3F,0x36,0x31,0x24,0x23,0x2A,0x2D,...
[syntax=basic4gl] Report : noname3 Date : 10-21-2014 Time : 20:42:39 Compiler : BASCOM-AVR LIBRARY V 2.0.7.5, DEMO Edition Processor : M8 SRAM : 400 hex EEPROM : 200 hex ROMSIZE : 2000 hex ROMIMAGE : 546 hex -> Will fit into ROM ROMIMAGE : 1350 dec FLASH USED : 16 % BAUD : 9600 Baud XTAL : 16000000 Hz BAUD error : 0.16% Stack start : 45F hex Stack size...
Witam serdecznie. Jestem początkującym programistą mikrokontrolerów avr. Większość wiedzy czerpię z internetu, więc nie mam się kogo poradzić w sprawach merytorycznych odnośnie napotkanych problemów. Stąd prośba o pomoc na tym forum. Wymyśliłem sobie projekt współpracy modułu bluetooth HC-06 (były poruszane wątki tego modułu na tym forum) z Atmegą8A....
Problem już prawie rozwiązany, gdyż moja lista z projektami świeciła się jak choinka za sprawą tych samych, złych bibliotek. Poprawiłem już prawie wszystko, ale chce się upewnić co do jednego. Czy w kodzie który zamieszczam wystarczy usunąć "||" czy coś tam powinno być? W pliku źródłowym na jakiejś stronie internetowej też tego nie ma, więc nie usunąłem...
#include <iom32v.h> #include <macros.h> #define clk 1 #pragma interrupt_handler timer1_ovf_isr:10 #pragma interrupt_handler uart0_rx_isr:14 #pragma interrupt_handler uart0_tx_isr:16 unsigned int inputs[64]; unsigned int outputs[64]; char databuf[4]; char inputs_addr[4]; char outputs_addr[4];...
Nie no zaraz zaraz. RX uC to jest to co odbiera dane, łączysz to bezpośrednio z TX telefonu ponieważ telefon i tak nie da więcej niż 3,3V a uC działa na 5V. TX uC to jest to co nadaje dane, i tutaj wychodzi sygnał 5V czego telefon nie przyjmie. Skoro układ z diodą nie działa najlepiej, użyj dzielnika napięcia szeregowo 2,4k, potem 2,7k do masy. Co do...
A gdzie jest UBRRH_VALUE i UBRRL_VALUE ??
Spróbuj takiego kodu. U mnie on działa, tyle że na Atmega8535(nie mam ósmej atmegi luzem). #include <avr/io.h> #include <util/delay.h> static void uart(void) //konfiguracja UART wzięta z dokumentacji avr-gcc { #define BAUD 1200 #include <util/setbaud.h> UBRRH = UBRRH_VALUE; UBRRL = UBRRL_VALUE; #if USE_2X UCSRA |= _BV(U2X);...
Skorzystaj z tego: [syntax=c] #ifdef BAUD #undef BAUD #endif #define BAUD 19200 #include <util/setbaud.h> UBRRH = UBRRH_VALUE; UBRRL = UBRRL_VALUE; [/syntax] oczywiście po przestawieniu "fizycznej" czyli rzeczywistej prędkości zegara np. w AvrStudio, musisz w pliku Makefile zmienić podawaną kompilatorowi wybraną prędkość zegara np.: F_CPU = 8000000...
Witam !! Kolega define i include w funkcji ?? używa :>, zaznaczył kolega kod jako C, To tak można ??
Dziękuje za pomoc w temacie jak już wcześniej napisałem został on przeze mnie rozwiązany, błąd tkwił w złym policzeniu parametru UBRR, dziękuję również za link z informacjami o makrach: [syntax=c] #define BAUD 57600 //tutaj podaj żądaną prędkość transmisji #include <util/setbaud.h> //linkowanie tego pliku musi być //po zdefiniowaniu BAUD //ustaw...
Nie pisałem że to jedyny sposób, i raczej nie ma wiele wspólnego z danym typem AVR-a; zmieni się nazewnictwo konkretnego przerwania ISR, może nazwa rejestru UDR (ja mam tak napisany program do ATmega32). Prędkość wygodnie ustawić: #ifdef BAUD #undef BAUD #endif #define BAUD 19200 #include <util/setbaud.h> UBRRH = UBRRH_VALUE; UBRRL = UBRRL_VALUE;...
Po co zajmujesz się liczeniem? Algorytm i nagłówek setbaud.h zrobią to za Ciebie. Wykorzystaj po prostu funkcję, którą Ci wskazałem ponieważ istnieje jeszcze mnożnik: U2X Masz wtedy pewność poprawnego ustawienia, a przy przekroczeniu parametru błędu otrzymasz warning. Podsumowując, jeżeli zdefiniuje w ten sposob parametry transmisji, to prędkość zostanie...
Do obliczania UBRR możesz użyć makra z <util/setbaud.h>. [syntax=c]#define BAUD 9600 #include <util/setbaud.h> int main() { UBRRH = UBRRH_VALUE; UBRRL = UBRRL_VALUE; [/syntax] [syntax=c]UCSRC = (1<<UCSZ1)|(1<<UCSZ0);// <-- tutaj dane lecą do UBRRH zamiast do UCSRC[/syntax] Kiedy zapisujesz do rejestru UCSRC, musisz ustawić...
Ja tak inicjalizowałem tinego: UCSRC = 1<<UCSZ1 | 1<<UCSZ0; UCSRB = (1<<RXCIE)|(1<<T... // 8 Databits, receive and transmit enabled, receive complete interrupt enabled #define F_CPU 11059200 #define BAUD 9600 #include <util/setbaud.h> UBRRH = UBRRH_VALUE; UBRRL = UBRRL_VALUE; Spróbuj...
Mam taki kod [syntax=c]#define F_CPU 1000000UL #include <avr/io.h> #include <avr/interrupt.h> #include <string.h> #include <avr/pgmspace.h> #include <avr/sleep.h> #include <util/delay.h> volatile unsigned char odb_flaga = 0; char liczba; void usart_inicjuj(void) { #define BAUD 9600 #include <util/setbaud.h>...
Witam. Pocę się przy pisaniu w AtmelStudio 6. Mam problem z konfiguracją wspomnianego USART-a. Używam, a przynajmniej próbuję tym kodem: [syntax=c]#include <util/setbaud.h> void USART_Init(void) { UBRRH = UBRRH_VALUE; UBRRL = UBRRL_VALUE; UCSRC=(1<<URSEL)|(1<<UCSZ1)|... UCSRB=(1<<RXEN)|(1<<TXEN); }[/syntax]...
Zamiast opracowywać własny wzór obliczania parametrów prędkości transmisji, wystarczy wykorzystać setboud.h : jest stratą mocy obliczeniowej . Wystarczy wykorzystać przerwania: http://mikrokontrolery.blogspot.com/2011... I drobna uwaga - nie definiuj F_CPU w kodzie z tych powodów: http://mikrokontrolery.blogspot.com/2011...
Ustawiasz USART0, a próbujesz wysyłać przez USART1. W tym fragmencie zgubiłeś średnik po while: [syntax=c]void USART_Transmit(unsigned char data) { while(!(UCSR1A & (1<<UDRE1)) ) UDR1 = data; }[/syntax] Nie chce mi się weryfikować, czy dobrze ustawiasz baudrate, przelicz sobie, albo wstaw w kodzie wzór wg noty, albo użyj takiej konstrukcji:...
Witam, Problemy rozwiązałem wczoraj w nocy, zapomniałem napisać ;) Już wszystko działa, problem chyba był w tym: [syntax=c] #include <util/setbaud.h> UBRR0H=UBRRH_VALUE; UBRR0L=UBRRL_VALUE; [/syntax] Całość zamieniłem na to: [syntax=c]#define BAUD 9600 #define MYUBRR F_CPU/16/BAUD-1 void USART_Init( unsigned int ubrr) { /*Set baud rate */ UBRR0H...
To program który musiałem przerobić: http://obrazki.elektroda.pl/1371139000_1... To program który zrobiłem na bazie danych katalogowych atmega 8: Źle dodane obrazki usunąłem. Mirek Z.
Strasznie dziwne rzeczy się dzisiaj dzieją z tym wszystkim, udało mi się uruchomić USART ale nie działał mój stary kod z którego korzystałem od dawna. W zasadzie to była biblioteka napisana w oparciu o datasheet. Nie działała poprawnie funkcja inicjalizacji i zadziałała dopiero funkcja z jakiejś strony internetowej. Teraz mam tak, że jak dodam w funkcji...
1. Powinieneś się zdecydować, albo obsługujesz odbiór w przerwaniu, albo w procedurze rec() . Obie metody na raz powodują, że procesor będzie wisiał cały czas w procedurze rec() ( RXC będzie zawsze wyzerowane po wyjściu z przerwania), 2. Następna sprawa - nie używa się już #include <avr/signal.h> , tym bardziej jednocześnie z #include <avr/interrupt.h>...
Problem stanowił ft232, po wymianie na inny wszystko zaczęło działać. Postanowiłem jednak odświeżyć temat ponieważ napotkałem się na jeszcze jeden problem. Przy wysyłaniu jakiegoś kilka razy jakiegoś ciągu znaków np: "dioda" Odbiór jest następujący (zarówno w VC# jak i w RealTerm). dioda dioda dddddddddioda dioda dioda dioda ddddddddddddiodadd tak wiec...
kompletnie nie mam pojęcia co się dzieje. Próbowałem na wszystkie sposoby otrzymać cokolwiek od BTM-a i nic. Na uC wylaczylem BTM_init i funkcje inicjalizującą napisałem taką: #include <avr/io.h> #define F_CPU 4000000 #include <util/delay.h> static void uart_19200(void) { #define BAUD 19200 #include <util/setbaud.h> UBRRH...
Witam, próbuję zrobić układ który będzie wysyłał na komputer dane z wartości zmierzone na ADC w atmega8. Napisałem program który ma na razie wysyłać poprostu liczbę która powinna się zwiekszać z każdym wysłaniem o 1. Wysyłanie sprawdzam w Realterm i mam mały problem, ponieważ pokazuje w nim tylko liczbę początkową w ogóle nie zwiększając jej i nie robiąc...
Sugerując się tym tematem http://www.elektroda.pl/rtvforum/topic13... Napisałem prostą obsługę rs485 dla dwóch mega16 jeden to master drugi slave. Niestety nic się nie dzieje błąd tkwi w kodzie lub połączeniu na płytce albo w obu. Master: #include <avr/io.h> #include <inttypes.h> #include <util/delay.h> #include <stdio.h>...
Witajcie Postanowiłem pobawić się RS232. Używam do tego przejściówki USB->FT232->RS232. Atmega8 ustawiona: 8MHz Baud: 9600 UBBR: 51 Po przeczytaniu Datasheet i innych tutków napisałem coś takiego: [syntax=c]#include <avr/io.h> #include <inttypes.h> void USARTInit(uint16_t ubrr_value) { UBRRL = ubrr_value; UBRRH = (ubrr_value>>8);...
Cześć! Mam Atmege328 taktowaną z kwarca 16 Mhz. Do konfiguracji uarta używam nagłówka <util/setbaud.h> i chciałbym uartem nadawać z prędkością 115200. tutaj kawałek mojego nagłówka uart.h #warning "Baud rate achieved is higher than allowed" w setbaud.h a tam dziwactwo: [syntax=c]#if 100 * (F_CPU) > \ (8 * ((UBRR_VALUE) + 1)) * (100...
Witam, próbuję napisać program do odbierania danych z modułu Bluetooth HC-06. Kod, który znalazłem i zmodyfikowałem działa, lecz jest napisany w języku, który jest dla mnie trudniejszy. Chciałbym zapytać czy ktoś ma może odpowiednik poniższego programu w języku Arduino? Aktualnie potrzebuję stworzyć Timer, który po otrzymaniu danych z Bluetooha ustawi...
[syntax=c] volatile unsigned char odb_x; //odebrana liczba X volatile char odebrane[3]={0}; volatile unsigned char odb_flaga =0; //flaga informująca main() o odebraniu liczby volatile unsigned int usart_bufor_ind; //indeks bufora char usart_bufor[30] = "H"; void usart_inicjuj(void) { #define BAUD 9600 //tutaj podaj żądaną prędkość transmisji #include...
Cześć mnogość tematów u Was mam nadzieję, że dobrze trafiłem :) Chcę zrobić komunikację za pomocą portu USART Mam taki o to kod, który wgrywam na Atmege 88: #include <avr/io.h> #include <util/delay.h> #define BAUD 19200 #include <util/setbaud.h> void USART_Init(){ UBRR0H = UBRRH_VALUE; UBRR0L = UBRRL_VALUE; UCSR0B = (1...
Witam Próbuję połączyć dwa uC za pomocą komunikacji UART. Attiny ma za zadanie nadanie jednego znaku ASCII natomiast Atmega powinna go odebrać i wyświetlić na wyświetlaczu lcd. Niestety kontrolery nie mogą się dogadać, programy realizujące to zadanie są praktycznie wklejone z not katalogowych Atmela, ale zamieszczam je niżej bo może coś pokręciłem....
Potrzebuję pomocy przy zamianie kodu "RFID Reader", tzn. żeby zamiast wyświetlania kodu karty na LCD uzyskiwać odpowiedni poziom na wyjściu 1z10 i czy jest to możliwe do zrealizowania na atmega8? Chciałbym użyć 8 ostatnich cyfr kodu karty. Posłużyłem się gotowcem, który był już na elektrodzie (dopiero uczę się bascoma i nie wiem jak się do tego zabrać):...
Witam po dość długim czasie. Nie miałem zbytnio czasu żeby zająć się tym uartem. Jak do tej pory nie znalazłem żadnego kodu który kompilował by się bez problemów. Oprucz tego: #include <avr/io.h> #include <inttypes.h> void USARTInit(uint16_t ubrr_value) { UBRRL = ubrr_value; UBRRH = (ubrr_value>>8); UCSRC=(1<<URSEL)|(1<...
Mam problem z realizacją odczytu znaków, wysyłanych przez napisaną przeze mnie aplikację na system android, przez ATmege8. Połączenie nawiązywane jest bez problemu. Wiem, że mikroprocesor odbiera informację ponieważ podczas testów z odbieraniem jakichkolwiek informacji dane te zostały odbierane. Problem następuje jeśli chcę porównać odczytane dane z...
Witam. Zrobiłem prosty projekt a jednak nie działa poprawne wyświetlenie informacji odebranej. Połączyłem dwie atmegi88P pzez USART czyli dałem linię TXD pierwszej na RXD drugiej. Druga wyświetla to co dostała na LCD. No i ciągle widzę jakieś krzaczki. Częstotliwość taktowanie procka 1 MHz. Kod atmegi nadającej [syntax=c]#include <avr/io.h> #include...
(at)krzysiek_kutno Odszukaj w kodzie, który masz odwołań do pionu IO. Zwykle są to pojedyncze instrukcje. One na sztywno mają jakąś maskę, odzwierciedlającą położenie pinu. Tę maskę zamień na zmienną globalną, którą będziesz modyfikował w swoim kodzie. Gdyby załącznik był w zip to bym sobie go podglądnął, ale jestem zbyt leniwy na rozpakowanie rara...
Witam, mam problem z obsługą UART'a. Nie wiem dlaczego nie działa skoro teoretycznie powinien. Wykorzystuję ATmega325, zewnętrzny kwarc 16MHz, konwerter MCP2200. Poniżej zamieszczam kod. Jeżeli wpiszę do rejestru UDR0 jakąś wartość to otrzymam ją w terminalu ale używając funkcji zapisu i odczytu to już to nie działa tak jak powinno. Gdzie może być błąd?...
Witam, Próbuję zrobić układ mierzący napięcie w zakresie 0-5V i wysyłający wynik na COMa. Napięcie odniesienia ustawiłem na wew. AREF i do pinu ADC1 podłączyłem dzielnik napięcia z dwoma rezystorami 330, więc jeśli dobrze myślę to 5V/2=2.5 i (2.5/2.56)*255=249 i taki wynik powinno mi wysyłać na coma a wynik jaki otrzymuję gdy na zasilaczu ustawiam 5V...
Witam, mam problem z połączeniem po USARCIE tych dwóch procesorów. Sprawa wygląda następująco: atmega1284p ma być docelowo masterem, wysyła ramkę i w odpowiedzi dostaje ramkę zwrotną od atmega8. Obsługa ramek nie jest jeszcze napisana, na razie wysyłam 8 bajtów atmegą1284p i jeżeli wszystkie bajty zostają poprawnie odebrane, to atmega8 odsyła mi 11...
[syntax=c]#define USART_BAUD 4800ul #define USART_UBBR_VALUE ((F_CPU/(USART_BAUD<<4))-1) void USART_Init (void) { // Set baud rate UBRRH = (uint8_t) (USART_UBBR_VALUE >> 8); UBRRL = (uint8_t) USART_UBBR_VALUE; // Set frame format to 8 data bits, even parity, 1 stop bit //UCSRC = (0 << USBS) | (1 << UCSZ1) | (1 << UCSZ0)...
[syntax=c] #define USART_BAUD 9600ul #define USART_UBBR_VALUE ((F_CPU/(USART_BAUD<<4))-1) void uart_init(void) { // Set baud rate UBRRH = (uint8_t) (USART_UBBR_VALUE >> 8); UBRRL = (uint8_t) USART_UBBR_VALUE; // Set frame format to 8 data bits, even parity, 1 stop bit //UCSRC = (0 << USBS) | (1 << UCSZ1) | (1 << UCSZ0)...
Cześć, próbuję odczytywać dane z magistrali która ma format ramki Start 8bitów_danych extra_bit_danych stop, standard 9600 NRZ kolejność bitów to 0 1 2 3 4 5 6 7 MODE_BIT (kolejność 0...7 standardowa jak w UARCIE) Na screenie widać przebieg z analizatora http://obrazki.elektroda.net/78_12734803... Stop jest wyjechany w prawo trochę, ale to dlatego...
Witam! Problem jak w temacie. Zakupiłem moduł bluetooth BTM 112, zrobiłem pod niego płytką z wszelkimi potrzebnymi elementami (wg. schematu z datasheeta) i wyprowadzeniem sygnałów na goldpiny. Po podaniu zasilania moduł się włącza i przechodzi w stan "mrugającej diody połączenia". Od strony PC mogę się bez problemu połączyć i następnie wysyłać do modułu...
Witam. Mam dwa układy komunikujące się ze sobą za pomocą RS485. Jeden wysyła dane, drugi odbiera i wyświetla na lcd. Napisałem kod ale na lcd nie wyświetla się to co powinno. Proszę o sprawdzenie. Kod nadajnika: http://obrazki.elektroda.pl/1247361100_1...
Build started 6.4.2014 at 00:25:04 avr-gcc -mmcu=atmega16 -Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT Proba_10.o -MF dep/Proba_10.o.d -c ../Proba_10.c avr-gcc -mmcu=atmega16 -Wl,-Map=Proba_10.map Proba_10.o -o Proba_10.elf avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature...
Mam spory problem z uruchomieniem sterowania wyświetlaczem od Nokii 3110 za pomocą biblioteki GLCD ze strony glcd_set_contrast(70); , zastąpię tym co w niej siedzi, program wykonuje się do końca ("ABCDE" w terminalu), a na ekranie pojawia się jedna linia znaków, ale nie są to te znaki, które powinny się pojawić i nie pojawiają się w tej pozycji w której...
Twój program z postu [url=https://www.elektroda.pl/rtvforum/v... wydaje się być poprawny. Wartości jakie wpisujesz do OCR1 (czas w us) powinny być w okolicach 1500 +- 500 - tak z grubsza, te powinny zaakceptować różne serwa. Te 5000 o których wspomniałeś to raczej przesada. Jak to zasilasz, bo w tym może być problem....
Pokaż program po zmianach. [syntax=c] /* BAUD RATE: 9600 */ #include <avr/io.h> // Załaduj bibliotekę input/output #include <util/delay.h> // Załaduj bibliotekę opóźnień #include <avr/interrupt.h> // Załaduj bibliotekę obsługi przerwań #include "ioinit.h" // Załaduj bilbiotekę zew. (do ustawienia portów ATMega 8) #include "uart.h"...
Witam Mój problem polega na tym, że muszę odczytywać z ADC, a następnie wysyłać dość duże paczki danych. Wymyśliłem tak jak poniżej (wiem, że nie najlepiej), że wezmę puszczę przetwornik w FRM, tak żeby generował przerwanie po każdym pomiarze i w tym przerwaniu wysyłam to prosto po USART. [syntax=c] //pliki nagłówkowe #include <avr/io.h> #include...
Witam szanownych Kolegów, Natknąłem się na problem, z którym wojuję już dłuższą chwilę. Mimo poszukiwań w obszernych zasobach naszego forum niestety nie udało mi się odnaleźć odpowiedzi lub podpowiedzi odnośnie mojego problemu (być może źle szukam). Nabyłem takie oto moduły: http://electropark.pl/moduly-komunikacji...
Witak wszystkich. Mam dziwny problem. Piszę obsługę RS-485 na Atmega328P. Testowo program jest bardzo prosty: #include "MPCM_Port_D.h" #include "USART.h" #include <util/delay.h> #ifndef F_CPU #define F_CPU 16000000UL #endif #include <avr/io.h> int main(void) { char a[]="abcde"; uart_master_init();...
Witam, jako iż mój poprzedni temat został usunięty, a bardzo pilnie potrzebuje jakiejkolwiek pomocy jestem zmuszony założyć temat jeszcze raz. Otóż mój problem dotyczy sterowania silnikiem DC, a konkretnie napięciem jakie do niego wysyłam, chodzi o zmianę prędkości obrotowej, wzorowałem się na poradniku użytkownika Dondu konkretnie aplikacji LED Master....
Bieżący program wygląda następująco: #include <avr/io.h> #include <avr/interrupt.h> unsigned char volatile p1[8] = {0x50,0x90,0x90,0x90,0x30,0x30,0x30... unsigned char volatile p2[8] = {0x90,0x90,0x90,0x90,0x30,0x30,0x30... unsigned char volatile p3[9] = {0x90,0x30,0x90,0x30,0x90,0x30,0x50...
Witam kod do nadajnika może wyglądać tak: #include <avr/io.h> #define F_CPU 1000000UL #include <util/delay.h> #include <avr/interrupt.h> //set desired baud rate #define BAUDRATE 1200 //calculate UBRR value #define UBRRVAL ((F_CPU/(BAUDRATE*16UL)&... //define receive parameters #define SYNC 0XAA// synchro signal...
Witam. Mam pewną zagryzkę z prędkością USART w mojej atmedze. Niezależnie od ustawionego Baudrate zawsze na diodzie mam około 30Hz co tak na oko daje śmieszną prędkość. Czy coś robię źle? W jaki sposób wycisnąć z tego coś więcej? Poniżej podaje kod który jedyne co robi to inicjalizuje Usart i w pętli wysyła znak i mruga diodą. #include <avr/io.h>...
Dobry wieczór, Mam problem z połączeniem mojej Amegi8 po UART z PC. Opierając się o wiedzę z blogu Mirka oraz przeglądając elektrodę w poszukiwaniu podobnych tematów ( #include <avr/io.h> #include <util/delay.h> #include <inttypes.h> #include <avr/interrupt.h> #include <string.h> #include <stdint.h> #define USART_BAUD...
Witam, Zapoznałem się z tym tematem: https://www.elektroda.pl/rtvforum/topic2... Niestety jest zamknięty, więc musiałem otworzyć nowy. Szukałem wielu porad w tym temacie i ostatecznie napisałem program w BASCOmie i działa, aczkolwiek z pewnym problemem z częstym błędnym odczytem CRC. Teraz powoli przeprowadzam się na C i z podanego tematu ściągnąłem...
Ok. w takiej postaci kod kompiluje się bez błędów i warningów. Ale dalej w terminalu dostaję 3ff. Gdy zmieniłem 3 argument funkcji itoa na 10 to zamiast 3ff dostaję 1023, ale nadal tylko i wyłącznie to, niezależnie od wartości na wejściu ADC. ADC mam dobrze skonfigurowany? [syntax=c] #include <stdlib.h> #include <avr/io.h> #include <util/delay.h>...
Potrzebuję stworzyć wydajny protokół do komunikacji Atmegi 8 z PC oraz w drugą stronę po RS232. Wiem jak wysyłać pojedyncze bajty. Napisałem też pewien prosty protokół, poniżej kluczowe funkcje (send_packet, receive_packet) [syntax=c] #define F_CPU 7372800UL #define RS232_BAUD 57600ul char buffer[255]; //wysyłanie całego pakietu void send_packet(char...
Napisałem sobie obsługę protokołu modbus pod Atmege8 (taką prowizoryczną). W fazie projektowej symulowałem zapytanie od Mastera które było analizowane zaraz po wystartowaniu. uC reaguje prawidłowo tzn. Wysyła ramkę zgodną z oczekiwaniami. Problemy zaczęły się przy odbiorze danych po interfejsie UART. Otóż dane odbierane przez uC nie zgadzają się z tym...
Witam, mam problem z nawiązaniem połączenia przez układ MCP2200. Jest to konwerter USART=>USB. Korzystam z programu z strony: http://mikrokontrolery.blogspot.com/2011... Kod programu: http://obrazki.elektroda.pl/3793960700_1... Wszystko robię tak jak jest opisane na stronie, po podłączeniu układu...
Witam! Napisałem na szybko kod odbierający po 8 znaków z komputera. Pierwszy znak "?" jest znakiem startu. Następne 7 to dwie liczby (trzy i dwucyfrowa). Mikrokontroler nie odczytuje (poprawnie, bądź wcale) ostatniego znaku, wcześniejsze są ok. Nie wiem, gdzie mogłem się machnąć w tak prostym programie. Ze strony komputera korzystam z terminal by br(at)y....
Witam, od kilku dni próbuję wygrać nierówną walkę z programowym pwm i usartem na atmedze8. Wysyłam z nadajnika dane za pomocą USART (sprawdzane wielokrotnie na bank są dobre) do płytki z atmegą i serwomechanizmem. Jeżeli serwo jest sterowane bez ingerencji danych z USART to wszystko działa jak trzeba, w momencie gdy chcę wysłać gotowe dane do płytki...
Witam, Od kilku dniu próbuję uporać się z komunikacją po RS485, no i napotkałem problem z którym sobie nie radzę. Korzystam z płytki testowej ZL2AVR ( http://www.btc.pl/pdf/zl2avr.pdf ) oraz układu MAX485 ( http://ecee.colorado.edu/~mcclurel/max48... ) (pomiędzy zasilanie a masę kondensatory 47uF i 100nF, piny !RE i DE połączone razem i podłączone...
Witam Napisałem na podstawie kursu http://mikrokontrolery.blogspot.com/2011... program na uC Atmega16 mierzący napięcie ,lekko go modyfikując ,żeby wynik pomiaru zamiast na LCD został wysłany przez UART/USART do AVRTV na uC Atmega8 . Obsługę UART znalazłem tu http://www.forbot.pl/forum/topics49/c-ua...
Witam. Przedstawię dzisiaj kompletne rozwiązane jak szybko uruchomić za parę złotych własny terminal rs-owy w oparciu o konwerter USB RS232 na układzie scalonym PL-2303HX który można kupić bez problemu na Allegro. http://obrazki.elektroda.pl/9582806900_1... Przykład oparłem na programie putty z domyślnymi ustawieniami dla RS-a. Biblioteka...
Witam panowie. Zagadka jest taka. Jest sobie arduino uno, ale programuję je bez bootloadera, bezpośrednio w c w avr studio wersja 4. W pewnym momencie w programie startuję timer 2 w trybie CTC i używam go jako wyjście zegarowe dla bufora. Timer 2 ma ustwienia prescalera na 1 i rejestru porównawczego na 7, co daje ze wzoru przy częstotliwości uC 16Mhz,...
Wrzucam moją wersję programu do obsługi 4 serw. W ostatnim tygodniu zakupiłem swoje pierwsze dwa serwa, więc mogłem się pobawić problemem ich sterowania. Z powodu, że mam tylko dwa, jedynie dwa kanały są sterowane z przetworników ADC. Pozostałe są obsługiwane przez przerwania, ale nie ustawiane. Wartości dla serw wpisuje się w tablicy serwa_val[]. Doświadczalnie...
Witajcie moi drodzy. Chciałem zrobić komunikację po RS232, na początek w jedną stronę - z atmegi do komputera. Niestety, ciągle pojawia się taki błąd: http://obrazki.elektroda.pl/4311460800_1... Korzystam z zewnętrznego kwarca 16MHz bez kondensatorów. Takie mam fuse bits: http://obrazki.elektroda.pl/7171078000_1... Podłaczenia...
resistor value diode value audigy value
komputer citroen bezpiecznik samsung uszkodzony aparat silnik przez regulator buczy
bosch condens nietypowe połączenie bezpieczników
Difference Between Assault and Battery: Legal Elements, Examples, and Jurisdictional Variations Heidenhain TNC355 – długi czas pracy hydrauliki, przyczyny, diagnostyka, presostat, filtracja