No bez przesady. Myślisz, że przejściówka o której pisze Daniel880 ma konwerter poziomów? Nic na ten temat nie wspominał. Przejściówka jaką posiadam jest oparta na pl2303 i jak wynika z noty to pracuje na poziomie napiec TTL. Jeśli wyjścia z niej są TTL to moim zdaniem tak właśnie jest.
Witam, chciałbym przerobić zegarek z tego projektu http://www.avr-tutorials.com/projects/at... na Atmega8. Chciałbym również usunąć odliczanie sekund ponieważ dysponuję tylko wyświetlaczem czterocyfrowym. Po skromnych przeróbkach mój kod wygląda tak: [syntax=c] #define F_CPU4000000UL #include <avr/delay.h> #include <avr/io.h>...
Witam. Dopiero zaczynam przygodę z mikrokontrolerami(konkretnie ATmega8), więc problemy na moim stopniu zaawansowania to pewnie normalka :) Problemem jest to, że ze zdefiniowanych portów(PB1, PB2 i wszystkie PD) działają tylko PB1 i 2. Na zdjęciach podpiety jest tylko PB2, ale to nie ma znaczenia. Poniżej zdjęcia mojej płytki stykowej i kod programu(w...
Witam, Postanowiłem dobudować sobie do zasilacza taki oto woltomierz: http://romanworkshop.blutu.pl/elec/autov... Ponieważ szkoda mi 8zł na nową Atmegę 48 zwłaszcza że mam kilka Atmeg 8 postanowiłem przerobić kod (wstawiam już po zmianach) [syntax=avrasm];Automatyczny 2-zakresowy woltomierz panelowy z 4-cyfrowym wyświetlaczem LED ;Wersja 1.02 dla...
Witam, Zbudowałem taki układ: http://obrazki.elektroda.pl/9541154400_1... Czy zasilanie mikrokontrolera jest prawidłowe oraz czy nie za mało dałem kondensatorów ceramicznych bo mam pewne problemy z uC. Program się co prawda wgrywa ale moim zdaniem nie funkcjonuje poprawnie. Np. ustawiam wszystkie porty C na wyjścia oraz w stan wysoki...
Witam, mam taki kod programu, który skleiłem z fragmentów znalezionych w Internecie: Niestety dzieje się tak tylko 34 razy od momentu uruchomienia mikrokontrolera. Dane z terminala: p0p927p1020p1023p1023p1023p1023p1023p102... 1023p1023p1023p1023p1023p1023p1023p1023p... 3p1023p1023p1023p1023p1023p1023p1023pppp...
Witam Mam prośbę dotyczącą konwersji wkładu z procka 90s4433 na Atmega8. Poskładałem sobie niedawno tan układ publikowany w EdW grudzień 2003 "Akwariowy kombajn" i nigdzie nie moge dostać mikroprocesora 90s4433. Wiem że jego rozbudowanym zamiennikiem jest Atmega8. Udało mi się przekonwertować program na procesor Atmega8 w programie BascomAVR jednak...
Dzień Dobry ! zgrałem wsad z atmega8 16 AU i wgrałem go do atmega8 8L i układ nie startuje. czy nie można zamieniać tych mikrokontrolerów?
(at)ElektrodaBot Mam Atmega8A czy potrafisz przekształcić kod asemblera na język maszynowy i go wytłumaczyć?
Witam wszystkich. Od razu uprzedzam, że jest to mój pierwszy projekt na procesor w ogóle. Potrzebne było urządzenie które zidentyfikuje numer przewodu w wiązce. Na razie wpinałem 100 ohmową drabinkę rezystorową między masę a poszczególne żyły i z drugiej strony mierzyłem rezystancję i tak 100 ohm to pierwsza żyła, 200 druga, itd. I tak postanowiłem...
Witam serdecznie, mam problem który polega na dostosowaniu programu działającego na AT90S8535P do Atmega8. Dokładniej problem polega na tym że Atmega8 nie posiada wyjść tosc1/2. Poradzono mi aby sam uC pracowal na wewn. układzie RC a zegar na zewnetrznym oscylatorze. Szukałem info na temat zmiany konfiguracji ale nie mogę wymyśleć co zmienic w kodzie...
Zlecę zmodyfikowanie istniejącego już wsadu do atmega8 w języku bascom. Kod pochodzi z analogicznego projektu, który muszę dostosować do swoich potrzeb. Wszystko do dogadania
Witam. Ostatnio zainteresowałem się komunikacją uP z innymi urządzeniami i napisałem prosty program do obsługi Atmega 8 - PC( Labview). Problem polega na tym ,że potrafię przesłać ramkę danych ale w jaki sposób zaadresować ją do konkretnego urządzenia ? Myślałem o tym by każdemu urządzeniu nadać jakiś unikatowy adres i przesyłać kolejno ramkę adresu...
Witam Postawiłem sobie za cel możliwość zapisania wartości pwm w zewnętrznej pamięci eeprom, w tym przypadku AT24C02 Procesor to Atmega 8, wewnętrzne taktowanie zegara 1MHz W załączeniu wkleiłem uproszczony program zapisu i odczytu wartości pwm. Za pomocą pwm steruję jasnością podświetlenia wyświetlacza LCD. Wiem, że można zapisywać te ustawienia w...
http://obrazki.elektroda.pl/7789044100_1... Przedstawiam projekt mini płytki ewaluacyjnej pod mikrokontroler Atmega 8. Płytka jest dość prosta i składa się z następujących elementów: - podstawka pod mikrokontroler (DIP28), - wyprowadzone wszystkie złącza mikrokontrolera (każde po dwa razy), - 8 diod, - 5 przycisków (np. do sterowania:...
Jak w temacie. Kupię 4 sztuki ATMEGA8, mogą być z wylutu.
Witam, zwracam się jako laik (proszę o wyrozumiałość) jednakże zapytanie jest poważne. Chodzi o zaprojektowanie i wykonanie, na początek w ilości 200sztuk, docelowo 1000-2000sztuk układu opartego o mikrokontroler Atmega8 Wymagania: -zaprojektowanie układu w możliwie małym wymiarze -układ oparty o mikrokontroler Atmega8 (odpowiedni program posiadamy)...
Witam, podjąłem próbę przetłumaczenia przykładowego kodu do zapisu na karcie SD z biblioteki FatFS ze strony elm-chan (plik ffsample.zip projekt avr_foolproof - mam za mało postów by wkleić link). Niestety efekt nie jest zadowalający - po prostu nie działa :D (nie wykonuje się część odpowiedzialna za stworzenie pliku). Częstotliwość kwarcu w moim projekcie...
Witam, Nie mogę poradzić sobie z obsługą karty SD na atmedze 8. Schemat: http://obrazki.elektroda.pl/7309105300_1... Z tą różnicą, że CD/DAT3 podpięty jest pod PD1. Używam(a raczej próbuję użyć) biblioteki [url=http://elm-chan.org/fsw/ff/00index_... FAT. Kod C: [syntax=c] // includowanie itd. int main(void) { FATFS fs; // Work...
Potrzebuje pomocy , narazie chcialbym wiedziec -a literatura do jakiej udalo mi sie dotrzec tego nie wyjasnia -mianowicie jak wyslac wiecej niz 16 ,a dokladniej to 24 zdefiniowanych bitow szeregowo poprzez port PD5 PD6 -bylo by wyjsciem "CLOCK" PD7 -wyjsciem "CHIP ENABLE" JAKICH INSTRUKCJI ASEMBLERA UZYC DO WYSLANIA ? DZIEKI ZAEWENTUALNA POMOC! i prosze...
Witam, mam problem jak w tym temacie: http://www.elektroda.pl/rtvforum/topic19... potrzebuję bibliotekę z atmegą8 w obudowie tqfp32 ale żeby pady były mniejsze, jak na lewym zdjęciu z linku wyżej. Niestety odstępy między padami w domyślnej bibliotece są bardzo małe i mam problem z trawieniem. Ewentualnie jakiś schemat by mnie uratował który ma...
Witam, mam krótkie pytanie: czy modbus rtu możemy odbierać (nadawanie mnie nie interesuje) poprzez USART tak jak tryb ASCII i jak jest to opisane w datasheet Atmegi?
Witam. Chciałbym zrobić odbiór danych z rs232 w przerwaniu. Programuje w C w WinAVR. Nie mogę znaleźć uchwytu przerwania od USART, jest jedynie od UART i nie chce działać. Nie wiem co robie źle. Dziękuję za wszelką pomoc. #include <avr/io.h> #include "delay.h" #include <avr/interrupt.h> #include <avr/signal.h> #define FOSC 16000000//...
Otóż nie może być w przerwaniu bo wtedy kolidowało by to z innymi przerwaniami, które się cyklicznie powtarzają. Problem jest taki, że czas obsługi tych przerwań jest różny, a więc czas poświęcony na odbiór danych też jest różny. Mogę jedynie próbować oszacować jaki przedział czasu jest przeznaczony na odbiór.
OOPS już wiem. Przesunięcie bitowe to przesunięcie wszystkich bitów a nie tylko jednego. #define HC_TX_OFF HC_TX_DDR |= (1<<HC_TX);HC_TX_PORT &=~ (1<<HC_TX); zamiast #define HC_TX_OFF HC_TX_DDR |= (1<<HC_TX);HC_TX_PORT &= (0<<HC_TX); i już jest OK. To nie USART wyłączał wentylator tylko odczyt_odległości, który był uruchamiany...
Witam, mam dziwny problem, pomoże mi ktoś go rozwiązać? Chodzi o to, że buduję urządzenie, które na żądanie będzie mierzyło temperaturę układem DS18B20. Żądanie odbywa się poprzez naciśnięcie odpowiedniego przycisku na pilocie RC5. Całe moje urządzenie to dwa AVR: Atmega8 (jako dekoder RC5, który wysyła odebrany adres i komendę poprzez USART do drugiego...
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...
Witam... Zabrałem się za uarta i wydaje się, że nie jest to takie tragiczne ale mam pewien problem... Chciałby odbiór zrobić na przerwaniu... Tzn żeby dopiero kiedy ustawiona jest flaga RXC (odbiór zakończony) zostało wywolane przerwanie i nastąpiło "odebranie" danych z UDR... Znalazłem uchwyt do tego przerwania, według dokumentacji USART_RXC... I teraz...
Ok, dzięki za link. Co do sposobu samej transmisji, to już chyba opracowałem sobie protokół - zamierzam w buforze zapisywać odebrane bajty w przerwaniu, a po zakończeniu przesyłania ramki - będę ustawiał flagę i główna pętla będzie procesować komende. Wszystko było by super - napisałem nawet prosty program, który odbierał dane i zapisywał w buforze....
-> ruzumek BREAK mrugnie się jeżeli transmisja kończy się przed czasem np. wysyłasz szybciej niż możesz odebrać error mrugnie jężeli transmisja jest nie poprawna np. stak bitu stopu, niepasująca ilość tych bitów itp. -> iluzione #define FOSC 8000000ul // // Clock Speed powinno być definiowane w makefile. jak automatycznie nie dorzuci to project->configuration...
Witam Mam problem z komunikacją między dwoma uC. Dane są odbierane, jednak nie zgadzają się z wysyłanymi. Atmega32 - pełni funkcję Mastera #define VUART 38400 #define VUBRR F_CPU/(VUART*16)-1 #define T0_start 1 #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include <avr/iom32.h> #include <stdlib.h>...
Witam. Niedawno rozpocząłem swoją przygodę z Atmegą8. Chciałem sprawdzić jak działa interfejs TWI. Na podstawie książki pana Cezarego Klimasza zakupiłem układ 24c16wp i napisałem program. Niestety program zamiast wyświetlać mi w terminalu liczby od 255 do 0 wyświetla bliżej nieokreślone sekwencje znaków. Czy mógłby mi ktoś pomóc znaleźć błąd w moim...
Witam, Próbuję korzystać z biblioteki Peter Fleury do obsługi usart-u, której listing znajduje się poniżej: PLIK uart.c /***************************************... Title: Interrupt UART library with receive/transmit circular buffers Author: Peter Fleury <pfleury(at)gmx.ch> http://jump.to/fleury File:...
Musi być coś co polaryzuje linie w spoczynku. Zwykły transceiver RS485 musi mieć sygnał różnicowy>200mV, poniżej tej wartości działanie jest niezdefiniowane. Dodatkowo przy braku takiej polaryzacji każde zakłócenie generuje odpowiedź, co właśnie obserwujesz. Daj rezystor od A do Vcc i od B do GND, wartość około 680 om.
Usuń całkowicie Waitms z pętli odbiornika a w nadajniku zwiększ wartość Waitms. Jak nie pomoże to zrób odbiór na przerwaniu od URXC.
co do odbioru masz 2 mozliwosci albo czekac az cos przyjdzie albo uzyc przerwania ".org 0x00B ;USART, RXC USART, Rx Complete" w momencie odebrania jednego bajta nastapi przerwanie. w obsludze przerwania nalezy odczytac np "in r16, UDR" a nastepnie mozemy sobie zapisac r16 np do ramu i "reti". jak bedziesz mial problem pisz na gg jestem praktycznie caly...
Gdyby nie było źle to bym nie pisał że jest źle. Jeśli pytasz czemu nie działa, a ktoś ci odpisuje że jest źle i trzeba to poprawić no to znaczy że jednak jest źle. Dokładnie ci napisałem co trzeba zrobić żeby wszystko działało jak trzeba. Wystarczy jedynie trochę własnej inicjatywy żeby to dopisać, a wiele do dopisania nie masz. 1) CONFIG COM - sprawdź...
Khmmm, po pierwsze to niech kolega docelowo zrobi obsluge odbioru na przerwaniu, ale narazie to nie ma znaczenia. Po drugie :> zalezy z jaka czestotliwoscia wysylasz znaki. Bo jesli z komputera kazesz mu wyslac od razu caly ciag, a w programie kazesz mu po kazdym odebranym znaku odczekac 200+200ms to kazdy znak ktory przyjdzie w tym czasie zostanie...
Może skorzystać z przerwania, które UART zgłosi, kiedy odbierze znak. Wtedy kod może wyglądac tak: ISR (SIG_OVERFLOW2) { //obliczanie wartosci ktore maja byc wyswietlone na wyswietlaczu } ISR (USART_RX_vect) { //operacje na odebranych danych } main(){ //wlaczenie przerwan itp while(1){ //wyswietlanie...
Sprawdź CKDIV8. Jakim terminalem się komunikujesz? Czy są jakieś objawy np. odbiór śmieci? Zrób na razie prosty program w pętli wysyłający co np. sekundę jakiś bajt, by sprawdzić odbiór przez terminal. Przy okazji - wiesz, że to nie ma sensu: [syntax=c]UCSR0C |=(0<<UMSEL00)|(0<<UMSEL01)| ...[/syntax] http://mikrokontrolery.blogspot.com/2011...
To, co nazywasz "liczba" po polsku nazywa się "cyfra". Aby uzyskać wartość cyfry musisz odjąć od niej kod zera, czyli wartosc = znak - '0'; Obsługa przerwania odbioru transmisji powinna działać w min. 2 stanach: oczekiwania na cokolwiek i skanowania liczby. W stanie podstawowym po napotkaniu pierwszej cyfry zerujesz liczbę (albo i nie), zapisujesz w...
Dlaczego tablica ascii ma tylko 6 pozycji? Potrzebujesz 7. Jawnie wychodzisz poza tablicę (w kodzie wystepuje ascii[6]). I taka uwaga na przyszłość. W funkcji set_values wysyłasz dane serialem. Procedura USART_Transmit czeka aktywnie na wysłanie - trwa dość długo. Wywołanie jej w procedurze obsługi przerwania z odbiornika powoduje za długie wykonanie...
Witam, 1. Tak, to dobry pomysł pod warunkiem, że odbiornik i nadajnik radiowy mają zaimplementowany własny algorytm przesyłania danych, a Ty komunikujesz się z nimi za pośrednictwem UART. 2. Jeżeli chodzi tylko o odbiór danych to tak, nie będą się zakłócały. Pozdrawiam, Piotr.
Tak by wyglądało "przerwanie RX" w pętli głównej: if(bit_is_set(UCSRA,RXC)) { odb_x=UDR; odb_flaga = 1; } Następny etap pracy to odbiór danych przez uC z ustawieniami pracy wentylatorów użytkownika, a nie jak dotąd liczonymi ze wzoru w uC.
Co do programu na megę328: 1. Niepotrzebnie dołączasz sfr_defs.h 2. O F_CPU w kodzie było już miliony razy na forum. 3. Dla ułatwienia obliczeń prędkości polecam util/setbaud.h 4. W rejestrze UCSR0C ustawiasz bity, które po resecie są ustawione. 5. W UCSR0B nie włączasz przerwania od odbioru (bit RXCIE)! Dodatkowo niepotrzebnie stosujesz sumę bitową...
czyli takie cos powinno dzialac prawda? Hm ... wróżką to ja niestety nie jestem :( Pokazałem jak wczytać dane z USART-a do tablicy , a co Ty chcesz z nimi zrobić , to tego ja już nie wiem. Piotrek
$crystal = 8000000 $regfile = "M16def.dat" $hwstack = 128 Tu zmieniasz wg wlasnych parametrow '- deklaracja zmiennych dla usart ---------------------------------------- Dim Index As Byte 'kolejny znak w buforze odbioru Dim Odebrano As Bit 'flaga ustawiona po odebraniu znaku Dim Buf(10) As Byte 'bufor wejsciowy - 10bajtow '- konfiguracja...
Niestety nie mam czasu teraz analizować Twojego programu, ale zachęcam do spróbowania zrobienia na przerwaniach. To naprawdę jest proste i nie obciąża mikrokontrolera. Podałem Ci link, tam masz gotowca (na ATmega8) i dokładny opis oraz efekt działania, właśnie takiego programu, który terminalem wysyła do mikrokontrolera dane, a ten odpowiada - zobacz...
Dzięki za odpowiedź Tutaj posprzątałem kod nieco, wysyłałem wcześniej OK. Miałem w nim: USART_println("OK") To wysyła na wyjście sekwencję znaków: OK\r\n wtedy byłem w stanie odczytać OK Tak samo było gdy pisałem AT, a nie OK - tzn też odczytałem AT. Ani razu po wysłaniu AT nie otrzymałem OK - jedynie AT. Jeśli dobrze rozumiem pytanie...
Witam. Mam problem z komunikacją między btm-112 a atmega8 po usart, między btm - PC i Atmegą - PC nie ma problemów. Gdy z PC wysyłam komendy na uC to reaguje tak jak powinien, czyli gasi i zapala diodę, natomiast po połączeniu btm z uC zero reakcji. W czym problem? Prędkość transmisji się zgadza. Proszę o odp. na temat, taktowanie zostaje 1MHz! [syntax=c]#define...
Dzięki. Zrobiłem na przerwaniach i działa. Wie ktoś może jak zrobić timeout funkcji odbierającej dane w przerwaniu? Próbowałem z pętlą while i dekrementacją licznika ale nie działa. [syntax=c]/* Funkcja odbierająca dane z USART */ unsigned char USART_Receive( void ) { /* Wait for data to be received */ while ( !(UCSRA & (1<<RXC)) ){}; /* Get...
Ulepszyłbym o tyle, że skoro wykorzystujesz soft posiadający bufor cykliczny, to zamiast tak jak napisałeś blokującej obsługi USART, zmieniłbym kod tak, żeby odbierał w przerwaniach kolejne znaki i po natrafieniu na CR/LF sygnaizował, że do sparsowania jest cały wiersz. W ten sposób odblokowujesz pętlę główną. Oczywiście warto też zrobić tak, żeby przerwa...
/* ISR(koniec odbioru),ISR(zakonczenie nadawania RxD=>ON, RxT=>ON */ UCSRB = _BV(TXCIE)|_BV(RXCIE)|_B... Proszę coś z tym zrobić.
A skad pobierasz znaki do wyswietlania na LCD? Ja mialem zewnetrzny kwarc 1 MHz, ale fuse bit mialem tak ustawiony ze procesor chodzil mi na wewnetrznym zegarze 1MHz, ktory jest aktywny po pierwszym wlaczeniu procesora. I wowczas przy odbiorze znakow przez USART, wewnetrzny kwarc byl na tyle niestabilny ze przeklamywal mi znaki odbiorane przez UARTA.
Dzięki, faktycznie. Kompletnie zapomniałem i o tym że łańcuch musi kończyć się na '\0', właśnie dlatego mi się krzaczki wyświetlały. Teraz funkcja wygląda tak: unsigned char USART_Receive( void ) // funkcja odbioru bajtu z RS232 { while ( !(UCSRA & (1<<RXC)) ); //odebrane = UDR; char buf[2]; buf[0]=UDR;...
(at)ElektrodaBot Skończyłem na tym, że wgrałem ten kod /* Program realizujący obliczanie i wysłanie przez RS-232 wyniku funkcji kwadratowej y = 0.3187x^2 + 2x - 7 na podstawie x odebranego wcześniej także za pomocą RS-232. Szczegóły: http://mikrokontrolery.blogspot.com/... Mikrokontroler: Atmega8...
Ja stosują coś takiego: /***************************************... int UART_ReceiveByteT (u08 *CzasMs) { u08 status; /* czeka na odbiór znaku lub koniec TimOUT */ while (!UART_ReceivedChar) if (!(*CzasMs)) return -1; //jeżeli TimOUT // Kontrola ramki status = UCSRA; if (status & (1 << FE))...
Funkcja wysyłania działa mi dobrze. Funkcja odbierania niby dioda mignie jak coś odbierze, ale czy działa prawidłowo to nie wiem. W każdym razie gdy z PC wyślę coś dioda potwierdzi, że coś odebrałem, ale gdy wyśle to z powrotem to nic nie otrzymuje. Kod programu: rs232.h [syntax=c]#ifndef RS232_H #define RS232_H #ifndef F_CPU #define F_CPU 1000000UL...
[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);...
poszperałem w necie i znalazłem coś takiego To przerwanie jest od wysyłania danych, a nie od odbioru.
Może dlatego, że niewiedzieć czemu po wysłaniu komendy czekasz na odebranie kolejnego znaku i go usuwasz odczytując UDR (dummy=UDR). Kolejna sprawa - te strcmp jest bez sensu, sprawdzać powinieneś dopiero po odebraniu danych. Ew. trzebaby zamazywać cały bufor, bo tak jak to masz zrobione przy odbiorze kolejnych komend bufor jest mixem nowych i starych...
tzn. ? Masz tu juz "kawałek" kodu. Na forum jest wiele przykładów odbioru przez USART. Przykłady również masz w katalogu "samples". Możesz też np. przeanalizować mój kod modułu gsm opartego o SE 300. Analiza jest lepsza niż gotowiec, ponieważ analizując zrozumiesz bardziej niż dostając gotowca.
W jaki celu w przerwaniu odbioru usart wywyłujesz funkcję USARTReadChar()? [syntax=c]char USARTReadChar() { while(!(UCSRA & (1<<RXC))) { //Do nothing } return UDR; } ISR(USART_RXC_vect) //przerwanie od odbioru danej { b = USARTReadChar(); USARTWriteChar(b); if (b == '1' ){flaga = 0;} else if (b == '2' ){flaga = 1;} else {flaga = 1;} //wysłanie...
Dlaczego wygląda okropnie? właśnie tak się robi gdy robimy krótka pętlę, po za tym to jest cały kod odbierający pakiet, kodu wysyłającego nie zamieszczałem gdyż jest bardzo prosty i działa poprawnie. Wiem, że najprostszym kodem odbioru jest kod podany niżej jednak jest on bardzo... "ułomny" nie odporny na przerwanie transmisji w trakcie odbioru. Jeżeli...
Veni, Vidi tak, Vici nie koniecznie. W programie, który załączyłeś nie ma konfiguracji i uruchomienia USART'a (str. 139 dokumentacji). Trochę dalej przedstawiono odbiór na przerwaniu (jeżeli USART jest wyłączony to flaga przerwania zawsze zero). Spróbuj skompilować prosty kod na przerwanie od timera, ale ze wszystkim, tzn. nie tylko uruchomienie ale...
W tutorialu jest obsługa USART bez wykorzystania przerwań, a ty próbujesz odebrać znak w przerwaniu. Wstaw instrukcję sei(); przed pętlą while i sprawdź co się dzieje. Jeśli nie pomoże, w poniedziałek podeślę działający kod na przerwaniach.
Mam problem weźmy pod uwagę kod: /************** Inicjuje port szeregowy AVRa ************/ void USART_init(unsigned int myubrr) { /* Ustala prędkość transmisji */ UBRR0H = (unsigned char)(myubrr>>8); UBRR0L = (unsigned char)myubrr; /* Włącza odbiór*/ UCSR0B = (1<<RXEN); /* Format ramki: 1...
http://obrazki.elektroda.pl/7969630300_1... Najprostszym rozwiązaniem było kupienie FT232, ale w wyniku porównania jego ceny z ceną ATmega8 nie było ono zbyt ekonomiczne. Dlatego autor postanowił zaprojektować konwerter na mikrokontrolerze. A jak jest już mikrokontroler, to sam USART wydaje się minimalistycznym rozwiązaniem. Stąd pomysł...
Witam, Komunikuje ze sobą dwa Uc: Atmega8 - panel z wyświetlaczem i guzikami Atmega32 - baza gdzie mam wszystkie czujniki Kwarce 14.746 Mhz w obydwu przypadkach Transmisja dwukierunkowa half-duplex przez rs-485. W uproszczeniu panel z wyświetlaczem ma za zadanie wyświetlać wszystko co mu wyśle baza, czyli 21 znaków x 8 lini = 168 bajtów. Wysyłanie realizuję...
Ludzie... Poprawiłem ten błąd, to była literówka przy wpisywaniu na forum. W programie było dobrze. Tu poprawiony kod, dalej zachowuje się tak jak opisałem na początku. #include<avr/io.h> #include<avr/interrupt.h> volatile int b=20; volatile char key; ////////////////////////////////////////...
odbiór usart usart atmega8 atmega8 usart
pralka gorenje w6503 myszki bezprzewodowe nadajnik wymiana akumulatora kalibracja
instalacje elektryczne schemat instalacje elektryczne schemat
Fiat Ulysse 2.0 JTD 136KM 2006 – lokalizacja modułu BSI pod deską rozdzielczą Schemat elektryczny zmywarki Whirlpool 6th Sense – gdzie znaleźć, jak odczytać