Witam! Dopiero zaczynam przygodę z avr i niestety jestem programistą, a nie elektronikiem, więc staram się nauczyć niezbędnej wiedzy. Chcę wykonać mały zegar binarny i czytając dokumentację Atmegi8 natrafiłem na: 1] The sum of all IOH, for all ports, should not exceed 300 mA. 2] The sum of all IOH, for port C0 - C5, should not exceed 100 mA. 3] The...
Witam, buduje sobie spokojnie na zaliczenie termometr oparty o atmege i ds1820 wiem że są gotowe rozwiązania na forum ale ja chce zrobić to sam, w pełni to rozumiejąc i umiejąc się z tego wytłumaczyć czemu kod wygląda tak a nie inaczej ogólnie jedna rzecz mnie męczy - mianowicie wymyśliłem sobie że na mój wyświetlacz puszcze cyfry przez 7448(wchodzi...
Zrobilem sobie zegarek binarny... na atmega8. Wszystko napisalem w C i testowalem w programie VMLAB gdzie wszystko spisywalo sie bez problemu. Jednakże po wgraniu softu do ATMEGI nie dzialaja przyciski ... i niestety nie mam pojęcia dlaczego ... Za wszystkie uwagi serdecznie dziękuje.. Oto schemat: A tu kod: // ****************************************...
Witam wszystkich:) Postanowiłem ostatnio pobawić się trochę mikroprocesorami. W tym celu kupiłem Atmel ATMEGA8L-8PI i zmontowałem, taki prosty układzik jak na rysunku w załączniku: W którym to: Nóżka 8 i 22 procesora jest podłączona do „-” zasilania; Nóżka 20 i 7 procesora jest podłączona do „+” zasilania; Nóżka 1 (Reset) procesora...
Witam! Jest to moja pierwsza konstrukcja na elektrodzie i za razem pierwsza z użyciem tylu elementów SMD. Jest to typowy zegarek binarny na uc Atmega8. Czas odmierzany jest przy pomocy PCF8563 i wyświetlany na 17-stu niebieskich matowych diodach (+ jedna nieużywana). Diody połączyłem w matryce. Katodami steruje przez tranzystory PNP BC807, a anodami...
Witam serdecznie, potrzebuje pomocy w napisaniu programu dla atmega8. Chodzi mi o pomoc w jego napisaniu. Z programowania nie jestem najlepszy. Problem polega na:Sczytaniu wartości z przetwornika (), konwersji z kodu Gray`a na kod binarny oraz przesłaniu za pomocą rs232 na PC. Wszystko to na przerwaniach. Co do samego sczytania wartości to wiem,że przetwornik...
Dziękuję za odpowiedź. Usunąłem rezystory podciągające. Tme ma błąd w opisie atmega88p-20AU, napięcie według producenta 2,7-5,5V, a w sklepie 1,8-5,5. Niestety już nie zamówię drugiego uC. poprawiona płytka:
Cześć. Mój problem dotyczy Atmegi8 i obsługi Timera2 w trybie CTC. Poniżej przedstawie napisany kod i problem który próbuję rozwiązać od pewnego czasu. [syntax=c] #define F_CPU 1000000UL #include <avr/io.h> #include <avr/interrupt.h> volatile int zrob_pomiar=0; volatile int odswiez_wyswietlacz=0; int main() { TIMSK |= (1 << OCIE2);...
Chciałbym przedstawić konstrukcję, która nie wnosi do świata elektroniki zupełnie nic nowego ponad standardowe połączenie kilku elementów, która powstała dla zabawy i żeby ładnie wyglądała, czyli zegarek binarny. Założeniem była budowa zegarka z widocznymi wszystkimi elementami i zasilanego z portu USB (ot tak). Elementy kluczowe 1. ATMega8A 2. DS1307...
Witam. Chciałbym zaprezentować wykonany przeze mnie zegar binarno-cyfrowy oparty o mikroprocesor Atmega8. Dlaczego binarno-cyfrowy? Ponieważ ma dwa tryby działania: 1. Tryb binarny, gdzie świecą jedynie niebieskie diody. 2. Tryb mieszany, gdzie dodatkowo oprócz postaci binarnej mamy też możliwość odczytu godziny w standardowy sposów na zwykłych wyświetlaczach...
1) Czy Programator będzie się nadawał pod warunkiem, że masz PCta z portem LPT. 2) W jakim "języku" będę mógł go zaprogramować? czy są jakieś "łatwiejsze" języki na początek, czy tylko ASM ew. C? Kontroler programujesz kodem binarnym w postaci plików .hex Z języków masz do wyboru: język C (trudny), BASCOM(łatwy), ASM(Bardzo trudny) Polecam na początek...
Jak już wspomniałem Bascom nie znam więc nie sprawdzę. Ale zrób ten krok do przodu i jak mówiłem porzuć ten język już na samym początku. Nie trać czasu i bierz się za: I odpowiadaj na pytania które zadajemy, bo na moje nie odpowiedziałeś. Oto Twój program zapalający diodę stanem niskim: 0b oznacza zapis binarny.
Atmel liczy od 0 do 1023 tak jak każdy kod binarny. Na 10 bitach maksymalna wartość to rzeczywiście jest 1023.
Witam, poszukując informacji na temat ustawiania alarmu w pcf8563 trafiłem dziś na twój temat. Jako, że też chciałem ustawić alarm, czytałem już wczoraj wieczorem datasheet, ale jakoś do mnie nie przemawiał. Dziś jednak przesiadłem do tego dokładniej i zmodyfikowałem twój program. Działa: Al_h = Makebcd(20) Al_mn = Makebcd(4) Al_d =...
Trochę sobie zaoszczędzisz kodowania jak popatrzysz jak wygląda korekcja BCD przy dodawaniu binarnym. Te wszystkie ify nie są potrzebne - poczytaj o BCD. Po wykonaniu standardowej operacji nad liczbami w kodzie BCD należy sprawdzić i w razie potrzeby skorygować wynik. Dla dodawania i odejmowania korekcja będzie potrzebna wtedy, gdy dana grupa bitów...
Witam! Swego czasu zacząłem przygodę z atmegą i nadszedł czas na zrobienie termometru. Chcę to zrealizować za pomocą dwóch 7 segmentowych wyświetlaczy, termometru DS18B20 oraz mikrokontrolera Atmega8. Układ złożyłem, przedstawiony jest na zdjęciu. Niestety nie posiadam układów, żeby użyć mniejszej ilości pinów, dlatego wyświetlacze zajmują właściwie...
Witam Kupiłem ostatnio na allegro kilka sztuk enkoderów obrotowych NONAME. Pierwszy raz mam styczność z takim czymś jak enkoder dlatego najpierw chciałem napisać program bez jakichkolwiek przerwań czy funkcji zwracających wartości oraz zanian z kodu Grey-a na binarny. Podłączyłem to w taki schemat i sugerując się przebiegami napisałem taki program:...
1.Teraz prosiłbym o wytłumaczenie pojęcia "wejście/Wyjście pływające" 2.I jak z konfigurować porty metodą binarną (najlepsza bo zajmuje najmniej :D ) "Config PortB = &B11111011" Gdzieś znalazłem takie coś tylko nie wiem co tym zkonfigurowałem? Dodano po 31 A i wszystkie stronki z Kursem BASCOM-AVR mile widziane. :D
Problem początkującego :) Podłączyłem wyświetlacz pod Atmega8. Potrafię wyświetlić na nim cyfrę 2 gdy bezpośrednio załaduję wartość binarną. Mam problem ze zrobieniem tablicy zawierającej wzorce znaków do wyświetlania, a przechowywanej w segmencie kodu programu. Zdefiniowałem na próbę trzy znaki - 1 oznacza świecenie diody. Próbuję je odczytać ale niestety...
Chce dodać że ten program mimo, że nie jest długi i profesjonalnie napisany to wymagał niezłego wysiłku z mojej strony żeby zadziałał. Dużo studiowałem na temat formatu pliku bmp i tu jest cały klucz sukcesu. Tego czego nie dowiedziałem się od nikogo... sam rozpracowałem i przekazuje innym by nie musieli się tyle męczyć i poddawać z projektem bo "coś...
Testowałem czy działa poprawnie obsługa karty, czyli wysyłałem do komputera jej ID na początku w postaci binarnej a potem już w dziesiętnej. Dane odbierałem w terminalu RS232. W Twoim wypadku wystarczy chyba tylko wysłać ID karty a na komputer napisać jakiś prosty program, który po odebraniu i zapisaniu ID zapisze jeszcze datę i czas.
[syntax=text]/*Dekoder kodu binarnego na dziesietny, po wprowadzeniu liczby binarnej z zakresu 0-8, zapalana jest taka sama liczba diod */ #include <avr/io.h> #include <util/delay.h> int main(void) { DDRB = 0xff; DDRD = 0xf0; PORTD = 0x0f; while(1){ if (!(PIND & 0x01 )) PORTB = 0x01;//1 if (!(PIND & 0x02 )) PORTB = 0x03;//2 if (!(PIND...
Ale ja widziałem już mnóstwo takich tematów na elektrodzie. Nie mam doświadczenia w programowaniu tego typu urządzeń. A myśle to zrobić na ATmega8. Chodzi mi bardziej o dokładne poradniki co do czego a nie gotowe projekty
Czyżby kolejny zegar binarny... Wszystkie porty jako wyjścia. Przy takim podłączeniu możesz sterować jednocześnie tylko jedną kolumną diod. Chcąc uzyskać efekt ciągłego świecenia musisz w sposób ciągły zapalać kolejne kolumny. Czyli w pętli na port C wysyłasz odpowiednie dane, a potem zapalasz odpowiednią kolumnę wysyłając na PD 1 następnie wysyłasz...
Cześć. Mam problem z charlieplexing-iem. Otóż posiadam Atmegę 8 i potrzebowałem wysterować 20 ledów. Zrobiłem więc coś takiego Jak widać do sterowania diodami wykorzystuję pierwsze 5 pinów portu D. Następnie stworzyłem taki kod: [syntax=c]#define F_CPU 8000000L #include <avr/io.h> #include <avr/interrupt.h> #include "E:\GG dysk\PROGRAMOWANIE\Mikrokontrolery\AVR\B...
Cholera... Okazało się (chyba bo pierwszy raz korzystam z avrstudio i samego C), że oile mieści się sam program w mega8535 to o brakuje już ramu (Mowa o programie z ) Tak wygląda log z kompilacji w avr studio Build started 14.11.2007 at 22:25:57 avr-gcc.exe -mmcu=atmega8535 -Wall -gdwarf-2 -DF_CPU=16000000UL -O0 -fsigned-char -MD -MP -MT mmc.o...
Autor niniejszego opisu planował testować swego czasu tagi RFID na częstotliwość 150 kHz, jednak nie posiadał własnego generatora sygnałowego – dlatego postanowił wykorzystać w tym celu mikroprocesor ATMega88 i bezpośrednią syntezę cyfrową sygnału. Zamiast jednak sięgnąć po gotowe rozwiązanie z Internetu, postanowił się dowiedzieć czegoś więcej...
Na początek wyrzuć te dzielenia i po prostu skopiuj wymaskowaną zmienną Mm do portu B. przecież Mm zawiera bity - zera i jedynki, którymi chcesz wysterować diody. Konwersja z liczby binarnej na liczbę binarną przy użyciu dzielenia przez potęgi dwójki po prostu powala.
Bo mają inną sygnaturę (wartość liczby binarnej, jaką odpowiada układ wprowadzony w stan programowania, po "zapytaniu się" o nią przez programator). ATmega ma więcej bitów konfiguracyjnych (np. m.in. jest bit zgodności z AT90S8515) i inaczej są programowane.
zbudwoalem zegarek binarny, zasilany bateria cr2025 3V (taka plaska). Czas wyswietlany jest na diodach smd po nacisnieciu przycisku. Problem: jak wlacze diody to napiecie spada do 2,6v smieszne jest to ze mikrokontroler jeszcze dziala tylko czasem sie cos pasuje, chcialem to napraiwc. zegarek jest na reke wiec zalezy mi na miniaturyzacji. chcialem wymienic...
A jak masz połączone te rezystory? Szeregowo czy równolegle? Czemu posługujesz się czyimiś bibliotekami, nie napiszesz ich sam? A to już nie można cudzych bibliotek wykorzystać? Nie wiem czy tutaj byłeś: [url=]Link Na dole artykułu jest gotowa biblioteka do ds18b20 działająca na 100%. W msb i lsb masz liczby binarne które musisz jeszcze przeliczyć odpowiednio.
Witam Nie mogę wykonać ćwiczenia nr 6 {Licznik binarny i dekadowy}z MOŁ.{luty 2003 EdW}dokładnie'C006b'. Podłączyłem wyświetlacz LTD 5816R,..., - katody pod kolejne piny portu B{portB.0 -segmentA itd. i na nim nie mam cyfr po ludzku tylko po chińsku..... Zrobiłem drugi wariant połączeń,pod kolejne piny portu B podłączyłem odpowiednio diody LED i zauważyłem,że...
Widze ze jest duze zainteresowanie zegarkami binarnymi wiec stworzylem ten post. Chcialem zebyscie wszystkie pytania na temat tych zegarkow kierowali tytaj (moje sa pod koniec posta). Chcialem tez tutaj przedstawic jak odczytywac godzine (i przekonac wszystkich ze odczytywanie godzny nie trwa 5 min tylko jak sie przyzwyczai to trwa to tyle ile odczytywanie...
Jeśli chcesz kolego miec super dokładnoś bo tej niestety komenda wait tobie nie zagwarantuje to może użyj baterii układów np. 74193 są to programowalne liczniki binarne. Połączone w szereg mogą dać tobie zadowalającą wartość np. 32 albo 64 bitową. Taktowane impulsem np. o szerokość 1us po zaprogramowaniu wygenerują impuls przeniesienia albo pożyczki...
Tablica nie może mieć więcej elementów niż maksymalna wartość typu int. Stąd problem. Zamiast robić tablice, zainteresuj się programem objcopy, który jest w toolchainie - przerabia on m.in. wskazany plik binarny na plik obj, który można zlinkować z resztą projektu. Taki plik w programie będzie identyfikowany przez zdefiniowany symbol (wskaźnik).
Ok, problem jest na 100% z kodem odpowiedzialnym za odczyt ADC. Trochę go nazmieniałem (teraz używa przerwań): 11000011 OR 00000010 -------- 11000011 Od prawie 12 lat programuję i taki błąd... Oczywiście ADMUX musi zostać ustawiony na wartość początkową przed ustawianiem nowej - w tym przypadku 0b11000000 lub po prostu 0xC0. Teraz wszystko pięknie działa,...
No dobra, zaskoczyłeś mnie tym pytaniem... Wracamy do szkoły: - te cyferki w kwadracikach (od 7 do 0) to numery bitów; - przy "7" jest napisane MSB czyli po naszemu 'najbardziej znaczący bit' lub najstarszy bit (jest najbardziej znaczący bo reprezentuje największą wartość w tym bajcie - ale o tym potem); - przy "0" jest LSB co oznacza, że ten bit jest...
Witam projektuję układ który będzie odczytywać wartość napięcia na ADC0 (PC0) i zapisuje to jako liczbę dziesiętną w jakiejś zmiennej. Wartość przetwornika w formie binarnej zapisana jest w 16 bitowym rejestrze ADCW a właściwie w 2 rejestrach 8 bitowych. Wartość jest zapisana w 10 młodszych bitach 16 bitowego rejestru ADCW. Jak zapisać wartość binarną...
Najpierw zastanów się, czy wyszukiwanie komendy jest rzeczywiście krytyczną operacją w Twoim kodzie - może nie ma to znaczenia przy prędkości UARTA? Prostszym sposobem byłoby utworzenie z listy napisów drzewa binarnego - wtedy wyszukanie byłoby O(m*log n) albo O(log n) zamiast O(m * n) w Twoim przypadku. Użycie tablicy komend nie poprawi tutaj wydajności....
Rozszyfrowanie nazw AVRów jest proste: ATmega[pamięć flash, potęga dwójki, czyli 1, 2, 4, 8, 16, 32, 64, 128, 256][dodatkowy numer lub literka]-[najszybszy kwarc][typ obudowy] Czyli na przykład: ATmega8-16PU 8kB pamięci programu flash, najszybszy kwarc to 16MHz, obudowa DIL ATmega128L-8AU 128kB pamięci, L to wersja niskonapięciowa, 8MHz, obudowa TQFP
Witam, właśnie się uczę programować atmege8 w C i mam problem z taką "zabawą" na diodach. Wymyśliłem sobie, że to będzie coś w rodzaju Snake. "Idą" sobie 3 diody, a gdy dojdą do końca portu to wtedy jedna dioda idzie na początek a przy kolejnym naciśnięciu przycisku 2 diody idą na początek i tak w kółko (zależnie który przycisk wcisnę to diody się przesuwają...
Podejrzewam że problem jest z odbiorem danych z pilota. BASCOM i GETRC5 nie za bardzo sobie z tym radzi. No i czy masz na pewno pilota RC5? Dodano po 1 Zobacz to: [syntax=basic4gl] $regfile "m8def.dat" 'konfiguracja mikroprocesora $crystal = 4000000 'konfiguracja kwarcu Config Portb = &B11111111 Portb = &B11111111 Config Portc = &B1111101...
Czyli liczbę z dziesiętnej muszę prze konwertować na binarna (Dec->Bin), a następnie podana przeze mnie funkcją o błędnej nazwie Dec2Bcd, binarną na Bcd? Z tego co rozumiem: liczbę np 13 rozkładam na dziesiątki i jedności: 1x10^1 + 3*10^0, następnie zamieniam 1 i 3 na postać binarną (puste miejsca uzupełniam zerami, aż do 4 bitów) 1= 0001 3= 0011...
Nie wychodzą bzdury - dzieje się dokładnie to, co każesz. Procesor ani EEPROM nie wie, co to są litery i cyfry - dla nich to wszystko są dane binarne. UART nie wie, czy przesyłasz literę czy cyfrę - przesyłasz 8 bitów. Te 8 bitów terminal wyświetla jako znak, używając kodu ASCII. Wysyłasz bajt o wartości 48 - terminal wyświetla cyfrę '0', bo ma ona...
Witam. Zacznę od tego, że jestem amatorem/początkującym więc moje programy gównie opierają się na tym co znajdę w internecie + jakaś znikoma wiedza :) Chciałem zrobić sterowanie serwem w zależności od temperatury. Założenia: -Mikrokontroler atmega8 -Pomiar temperatury DS18B20 -Sterowanie serwem "binarne" dwa wybrane przeze mnie położenia do sterowanie...
Jak słusznie zauważył kolega BlueDraco, całe wyrażenie można uprościć: [syntax=c] ISR(TIMER2_COMP_vect) { static uint8_t Bstates = 0; // Button_States - zmienna przechowująca ostatnie 4 stany przycisku if ((Bstates = ((Bstates << 1) & 0x0F) | (!(Key_PIN & _Key))) == 1) { Key_Pressed = 1; } } [/syntax] Timer zgłasza przerwanie co 10ms i...
Witam! Od niedawna zajmuje sie pisaniem programów do AVR. Język C znam dosyć dobrze, jednak mam problemy z napisaniem prostego programu. Jak narazie w sieci udało mi sie tylko wygrzebać taki, ktory steruje diodą. W związku z tym mam pytanie. Dysponuje może ktoś jakimś opisem poleceń które sterują pracą Atmega8? Oczywiście mam jego opis liczący ponad...
Aby ATmega8 chodziła na wewnętrznym oscylatorze 8 MHz miusisz przestawić fuse bity, a konkretnie w lfuse cztery najmłodsze bity nazywane CKSEL3 ... CKSEL0 odpowiadają za ustawienie szybkości zegara (dokumantacja mikrokontrolera str. 224). Aby ustawić go na 8 MHz bity te muszą przyjąć wartość binarną 0100 (dokumantacja mikrokontrolera str. 30). Zwróć...
Witam.Jak w podanym programie moglbym zwiekszyc opoznienia potrzebne do inicjacji wyswietlacza.Asembler jest czarna magia dla mnie wiec prosil bym o gotowa recepte.Z gory dziekuje ;Data: 04.06.2007 ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^... ;Program obslugi PT100 na AVR ATmega8 - pomiar 2 temperatur i wyznaczanie wilgotnosci ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
Witam mam ten układzik i chciał bym go zaprogramować ale nie mam programatora.Więc czy ktoś ma schemat jak najprostrzego programatora do układu atmega8 dip28?????? I jeszcze jedno, co trzeba z tych trzech plików wgrać na tego procka: Plik binarny Plik Intel HEX Zawartość pamieci EEPROM
Zamiast ATMega8 proponowałbym uzyć ATMega48 (lub ATMega88). Cena taka sama ale ATMega48 posiada mozliwość generacji przerwania 'pin change' tzn jakakolwiek zmiana stanu portu wywołuje przerwanie - czyli to, o co chodzi. W tym przerwaniu badamy stan portu i wysyłamy na UART. Odpada w ten sposób badanie stanu portu w pętli. Podobną własność ma też ATTiny2313...
Witam. Pierwotnie projekcik powstał jako prezent dla dziewczyny. Okazało się jednak, że odczytanie godziny ją przerasta/nudzi. Prezentuje zatem moje wypociny. Jak działa i czemu służy zegarek binarny - każdy wie. Mój postanowiłem upchnąć w pudełku po Tic-Tacach. Ma więc wymiary 60x35x15 Nieudany prototyp - wersja na 3xAA:
Witam, chciałbym przedstawić mój zegareczek binarny, całość umieszczona została w kopercie po zegarku unitry, ponieważ z oryginalnego zegarka została mi tylko koperta, postanowiłem zrobić w niej zegarek binarny. Pokazuje on czas w trybie 12 godzinnym, - godziny, minuty, sekundy. Wyświetlanie czasu trwa 5 sekund, i jest uaktywniane przez wcisniecie...
Witam. Wykonałem ten zegarek na Atmega8-16pu i mam dość duży problem z migotaniem diod... jest to mój pierwszy układ mikroprocesorowy i na prawdę nie mam pojęcia czemu tak jest, dlatego chciałbym prosić o pomoc. Zegar poprawnie wskazuje godzinę, ale diody tak jakby miały niską częstotliwość odświeżania, co jest bardzo męczące dla wzroku.Poradźcie, co...
Witam, Chciałbym zaprezentować mój pomysł na Zegar/kalendarz/termometr binarny zbudowany w oparciu o Atmega8 (Atmega168), DS1307 oraz DS18B20. Oczywiście w sieci można znaleźć zegary binarne gotowe jak i zestawy DIY. Być może moja konstrukcja wydaje się być banalna, ale posiada funkcjonalność której nie ma żaden zegar binarny których opisy znalazłem...
Witam! Wykonałem zegarek binarny z tego linku: 'TO DZIALA :) 'S1 - godziny 'S2 - minuty $regfile = "m8def.DAT" $crystal = 16000000 Dim Sekjed As Byte , Sekdzies As Byte , Minjed As Byte , Mindzies As Byte , Maxi As Byte Dim , Godzjed As Byte , Godzdzies As Byte , Mux As Byte , Uniwers As Byte Config Portd = 255 : Portd = &B255...
1. Kup lub zrób STK200 i obsłuż Bascomem AVR 2. TME.pl 3. np. 7zip I kłania się google; Moja rada; Zrób STK200 własnoręcznie i podłącz jakiegoś AVRka np. Atmega8, zaprogramuj. Bez tego nawet nie myśl o budowie tego zegarka.
Witam. D ziś przedstawaim drugą wersję zegara binarnego! Zegar wyświetla czas na 6 kolumnowym wyświetlaczu złozonym z diod led. Całością steruje dobrze znany i lubiany mikrokontroler ATmega8. On także zajmuje się odlizcaniem czasu wraz z kwarcem zegarkowym. Częstotilowść multipleksu została zwiększona do 1.56kHz. - Zapobiega migotaniu! :D Zasilanie...
Witam Mam do wykonania projekt z mikroinformatyki - tykający zegarek binarny z RTC. Niestety jestem dość początkujący, mam problem z doszukaniem się paru ważnych informacji. Sam zegar nie jest problemem, mam zamiar zrobić go na jakimś procku, na przykład Atmega8. Przeglądałem dość trochę różnych takich konstrukcji (zwłaszcza na Elektrodzie), ale mam...
W Atmega8 pin 1(PC6) normalnie jest RESET i dopoki nie zmienisz odpowiedniego fusebit (patrz str. 223; tabela 87 bit#7), ten pin nie spelnia roli GIO (PC6), wiec processr go nie "widzi". Nie doradzam jednak tej zmiany! W moim układzie (chcę zrobić zegar binarny) ten pin ma działać jako reset, więc tak jest podłączony. Ale czy podłączam reset do zasilania...
procesor : ATmega8 7 rezystorów =10k ohm 6 tranzystorów - BC557 2 kondensatory monolityczne =33pf 1 kondensator =1000uf 2 kondensatory =100nf 2 micro switch stabilizator napiecia -LM7805 20 diod led generator kwarcowy 16 mhz chyba to wszystko co potrzebujesz
Znalazłem Tylko że muszę użyć układ scalony MAX232 do "pogodzenia" napięć PC i TTL. I to wszytsko ale jak przesyłać dane. Do transmisji danych w ATmega8 musisz użyć USART (Universal Synchronous and Asynchronous serial Receiver and Transmitter) w trybie asynchronicznym. Łączysz pin wyjściowy oznaczony w ATmega8 jako TXD z wejściem RXD w porcie szeregowym...
Witam! Przepraszam jak powtórzyłem temat lecz żaden projekt mi nie pomógł w rozwiązaniu problemu. Mianowicie chcę zrobić zegarek binarny na Atmega8 i DS1337 był tu jeden projekt lecz on działał w inny sposób niż chcę. Mam wizję że mój zegarek będzie miał 4 LEDy godzin i 6 LEDów od minut. 3 Przyciski: +1h, +1m, Podświetlenie 5s Nie jestem zbyt dobry...
Witam serdecznie ;] Piszę w Borland C++ i obsługę com oparłem na WinAPI (obsługa com jak plik binarny). Zrobiłem już sprawnie działające nadawanie i odbieranie ramki. Ramka jeśli jest poprawna to jest zapisywana do vectora unsigned char (miałem problemy z dynamiczna tablicą unsigned char bo gdy tworzyłem ją np przez "new" to jeśli w pakiecie występował...
Witam szanownych Kolegów. Po dość długim czasie o poprzedniej prezentacji Kolejność pinów na schemacie odpowiada wyprowadzeniom matrycy Jako, że od wersji 1,0 minęło trochę czasu doszlifowałem co nieco moją znajomość Bascoma i kod zmniejszył się z 5,7kB do 1,87kB w wersji prezentowanej. Zegarek wyświetla godzinę w formacie kodu BCD co moim zdaniem...
Witam mam problem z połączeniem się z mikrokontrolerem atmega8 przez programator usbasp w avrdude wyrzuca mi błąd: avrdude: warning: cannot set sck period. please check for usbasp firmware update. avrdude: error: programm enable: target doesn't answer. 1 avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override...
Witajcie, Potrzebuję konfiguracji timera 1 dla atmega8 aby wykonywał funkcję z częstotliwością ~244Hz (zegar 16MHz i preskaler 2^16) . Chciałbym uniknąć używania dodatkowych bibliotek. Będę wdzięczny za przykładowy kod :) jakąś Przy okazji; jeśli użyję do tego celu timera 1, mogę równocześnie używać wyjść OC1A oraz OC1B jako zwykłe wyjścia I/O? Timer1...
Witam Roko poruszyłeś ciekawostkę jaki rezystor byś zastosował do 24 V i jaki do 48 V a tak z ciekawości chcę podpiąć procka do sprawdzania stanów binarnych na wyjściach urządzeń tz - inverter - pneumatyka i takie drobiazgi ( buzer światła itp. ) na napięcie 80 V z baterii akumulatora trakcyjnego maleństwo 80V 700Ah a do tego miał komunikację po rs232...
Właśnie natknąłem się na: Przerobie te procedurki co tam są (jak dam radę) i zobacze czy zadziała. Jak ktoś ma jakiegoś gotowca to też może zamieścić (chociaż mam nadzieję, że samemu uda mi się to napisać) :) Zanim zaczniesz się wysilać zrób sobie w programie, który zamieściłeś wyżej tak, żeby wyświetlało Ci bezpośrednio bajty odebrane ze sclaka, zamień...
Jeżeli to są zmienne binarne to przesyłaj je w jednym bajcie (tak możesz do 8 zmiennych) Jeżeli chcesz przesyłać dane bajtowe to stwórz jakiś prosty sposób na rozpoznawanie którą zmienną wysyłasz (np. wysyłając dane w 2 bajtach, gdzie 1 bajt to informacja którą zmienną przesyłasz, a drugi bajt to ta zmienna...) Dla dwóch zmiennych najprościej byłoby...
klawiatury mają różne parametry ale to jeszcze pryszcz w stosunku do tego że musisz jeszcze opanować symulację klawiaturę od strony PC. Oczywiście z punktu widzenia przezroczystego łącza parametry klawiatury oraz fakt, że odbiornik ma odpracować nibyklawiaturę są kompletnie bez znaczenia. Po prostu musisz sobie wymyślić sposób transmisji, który pozwoli...
Zamień tę cyfre np.194 na binarną 11000010 (przedstaw ją w innym systemie niż dziesiętny). Dla uproszczenie w kalkulatorze windowsa jest takie coś jak przełączysz na naukowy. I teraz każda 1 odpowiada zapalonemu segmentowi a 0 zgaszonemu. Wysyłając odpowiednią wartośc na port sterujesz odrazu 7 segmentami wyświetlacza + kropka (8 bitów). A i jeszcze...
... Czy jest to głupi pomysł? Adc potrafi zamienić/przełożyć napięcie , na liczbę binarną , natomiast co jest źródłem tego napięcia , na bank nie rozpozna.A może szkoda ... :D Piotrek
Z samych rezystorów to się robi DAC. Jak chcesz mieć ADC, to do takiego DACa trzeba by dołożyć komparator, a na uC trzeba napisać program, który będzie realizował funkcje rejestru kolejnych przybliżeń (SAR). W zasadzie ATmega komparator ma wbudowany, może można by go wykorzystać. Ponadto warto by dołożyć jakiś układ próbkująco-pamiętający, poziom mierzonego...
zrobilem sobie taki zegarek RTC na I2C i LCD 16x2 na zestawie uruchomieniowym zl2avr jednak nie wiem jak sie zabrac za podlączenie LCD pod I2C myslalem zeby uzyc pcf8574 tylko nie wiem jak podlaczyc LCD do tego ukladu i czy nie trzema jakiejs dodatkowej biblioteki ?? co by to obslugiwala ?? oto moj programik jaki mam do tej pory bez LCD na I2C : $regfile...
Proponuje najpierw zapoznać się z podstawami (arytmetyką binarną)... Wyzerowanie MUX1 ADMUX &= ~ (1<<MUX1) Zwracam uwagę na znak ~ przed (1<<MUX1). Operator ten powoduje negację bitów argumentu. Cała operacja wygląda tak ADMUX 11000010 AND ~(1<<MUX1) 11111101 = 11000000
Pewnie ze jest mozliwosc zrobienia tego. Jesli chodzi o pomiar czestotliwosci to mozna uzyc jakiegos licznika binarnego jako dzielnik czestotliwosci, np cos w rodzaju CD4040. Na wejscie licznika podajesz przebieg (oczywiscie musi on byc dostosowany poziomami i w "miare" prostokatny), a z odpowiedniego wyjscia (zalezy przez ile chcesz podzielic te czestotliwosc)...
1. Pracujesz zapewne na ustawieniach fabrycznych procesora, zatem "$crystal = 1000000" nie 8MHz. 2. Zapis w postaci binarnej nie jest prawidłowy: &B10001000 to nie to samo co 10001000 3. Sprawdź taką funkcję wysyłającą: I2cstart I2cwbyte 136 'adres tda I2cwbyte 1 'volume -1.25dB I2cwbyte 88 'wejście Stereo1 0dB I2cstop
Tak dokładnie to jest konwersja na kod binarny Wolałbym ominąc pisanie kodu w asm, chodzi mi zeby jak najszybciej uruchomic DS'a i chciałem tylko zobaczyc czy dobrze działa na terminalu. :) Ale teraz musze wyszlifowac czas, bo otrzymuje na terminalu same zera, co jest dziwne:/ Napewno resetowanie 1-wire jest dobre bo sprawdziłem wrunkiem if(reset_wire()==0)....
Witam Niedawno zauważyłem że masz tam coś namącone przy wyświetlaniu cyfr bo jest tam procedura "pokaztemp" a w niej obsługa przerwania. nie wiem o so chodzi :?: Sprawdź to, ale poustawiaj se końcówki wg. siebie mnie to chodziło na AT90S2313 : '*****1 Wire na wyświetlaczu LED na Płytce testowej *********** Config 1wire = Portd.5 Config Timer0 = Timer...
No dla mnie tym następnym krokiem był przerzutnik T :) Również polecam :) Potem, sugeruje proste przerwania zewnętrzne, timer (tu duze pole do popisu, mozna sobie zrobić na nim mruganie diody, przyciskami sterowac częstotliwość), potem sterować jasnością z PWM. Dalej proponuje pobawić sie wewnętrznym eepromem, przydaje sie w dalszej nauce, potem zewnętrzny...
Może ma ktos z was gotowy program do wyswietlania cyfr na dwóch wyswietlaczach? Może w przerwaniu. Mam cos takiego ale wyswietlacz mruga. Używaj znaczników "code" jak wklejasz kod. Poprawiłem $regfile = "m8def.dat" $crystal = 8000000 Config Portd = Output Config Pinb.0 = Output Config Pinb.1 = Output Config Pinb.2 = Output Config Pinb.3 =...
Wielkie dzieki :) Dokładnie o to mi chodziło. Widać, ze masz duzą wprawe, bez błędnie przejrzałeś mój kod. Mam jeszcze jedno pytanie: W jaki sposób zapisać dane do tablicy ? np. sprawdzam stan na porcie i zapisuje go do tablicy ? Co oznacza dokładne ".db" ? czy chodzi o liczby binarne ?jakie są tego alternatywy ? Jeszcze raz dziękuje za pomoc.
wartoście binarne z tego co mi wiadomo zapisuje się tak 0b11111111 a nie &B11111111
-> 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 HEX nie jest czystym kodem binarnym, zawiera zdziebko więcej informacji i możesz sobie go podglądnąć edytorem tekstowym, jeśli chcesz wiedzieć ile naprawdę zajmuje to zrób z niego BIN :D Wiele programatorów (programów do nich) potrafi zapisac pliki jako BIN lub możesz to zrobić zewnętrznym programem np. HEX2BIN Piotr
Język C znam, ale nigdy wcześniej nie pisałem programów na AVR'y. Mój program ma być dekoderem, który zamienia liczbę binarną (ustawianą switchami) na jej odpowiednik heksadecymalny widoczny na wyświetlaczy 7 segmentowym. Napisałem taki program: #include <avr/io.h> #include <util/delay.h> int main(void) { // tablica z kodami...
Witam. Zrobiłem zegarek binarny na atmega8 i teraz mam takie pytanko: Jak zrobić aby po wyłączeniu atmegi zegarek chodził, ale w trybie uśpienia, potrzebuję po prostu aby atmega po ponownym wyłączeniu pokazywała rzeczywisty czas. Pozdrawiam Krzysiekdioda
Hej. Napisz dokładnie jakie czujniki masz. Z tego co wiem są czujniki DS18B20, DS18S20,DS1820. Jeśli masz zastosowane dwa różne czujniki może to być przyczyną innych odczytów gdyż informacja odczytywana z tych czujników ma różną postać binarną na przykład +25 stopni dla DS1820 ma postać 0032h natomiast DS18B20 ma postać 0191h. Pozdrawiam
tak na pierwszy rzut oka: TCCR1B=(1 << CS10); //ustaw timer1 z preskalerem 1 TCCR1B=(1 << WGM12); //ustaw timer1 w tryb CTC Taki zapis nie wykona tego czego byś oczekiwał. Używasz operator przypisania =, co powoduje że pierwsza linia jest "pomijana" a w TCCR1B masz wartość (1 << WGM12). Użyj operatorów sumy i iloczynu...
Cześć, ja nadal robię ten sterownik czterech przekaźników na podczerwień, fale radiowe i przez komputer(rs232 i max232). Chwilowo nie posiadam modułów radiowych i zatrzymałem się przy podczerwieni. Mam problem z programem. Wszystko robię dobrze, czyli piszę "obsługę" przerwania, która polega na przypisaniu zmiennej zmienna liczby 1. Następnie w pętli...
No, nie całkiem ... Dwójka to podstawa systemu binarnego, a o taki opiera się technika cyfrowa. Wszystko, co jest wielokrotnością dwójki łatwiej się przetwarza. W szczególności dotyczy to dzielenia. Dzielenie przez 2 to poprostu przesunięcie zawartości zmiennej (rejestru) o jeden bit w prawo. Dzielenie przez 32 to przesunięcie o 5 bitów w prawo. Kompilator...
Aby ustawić port jako wyjście wpisujesz w rejestr kierunku portu wartość 1. Na bicie odpowiadającym pinowi, którym chcesz sterować. Czyli ustawienie całego portu C jako wyjście: DDRC = 0xFF; // ponieważ 0xFF to w systemie binarnym 11111111 Aby ustawić tylko 4 pin jako wyjście a resztę jako wejście: DDRC = 0x10; // ponieważ 0x10 to binarnie 00010000...
Kris, po kolei. HEX zawiera pewien opis - adresy i bajty, ktore programator pod te adresy ma zaladowac. Stad zwykle program programatora interpretuje HEX, czyta, ze np. pod adres 0x0010 ma zapisac ciag kolejnych 16 bajtow, potem czyta, ze kolejne 16 bajtow maja wywedrowac pod adres np. 0x0030 itd. Dzieki temu HEX nie musi zawierac "dziur" - ktore powstaja...
Witam ! Na początek zaznaczę, że jeszcze raczkuje w dziedzinie programowania choć mam za sobą już kilka projektów. Mój problem polega na tym iż nie mogę w żaden sposób poprawnie wyświetlić komend jakie nadaje pilot oparty na US SAA3010. Założeniem było aby rozkaz był wyświetlony na LCD w postaci binarnej. Wyświetlacz pokazuje 0 i 1 w różnych co prawda...
Hmm, szczerze mówiąc nie bardzo rozumiem co w rejestrach ADCL i ADCH zapisuje przetwornik a nie widzę w sieci dokładnych informacji na ten temat. Czy to jest wartość napięcia zapisana w formacie binarnym ??
Dużo lepsze myślę bedzie np: Kod: If Tow = 1 And PINC = &b00001000 Then Port c w ATmedze8 ma tylko 7 pinów. Sprubuję najpierw pomysłu kolegi alien_audio. Dodano po 5 Zmienna TOW jest jedynką tylko podczas trzymania przycisku, na Q1-Q4 zatrzaskuje się kod binarny aż do naciśnięcia następnego. Chodzi o to żeby mikrokontroler przełączał 6 wyjść niezależnie,...
Praktycznie każdy AVR się różni na tyle, że binarny wsad jakiegokolwiek bardziej skomplikowanego programu niż while(1) nie da się wgrać do innego procesora. Ale jeśli masz źródła to żaden problem, wystarczy przekompilować. Program nawet jeśli nie na rejestrach to wysypie się na inicjalizacji stosu - różne ilośći SRAM itd.
Mnie również zdarzało się popełnić jakiś błąd doradzając na tym forum, ale gdy wskazywano mi możliwość pomyłki natychmiast to sprawdzałem i poprawiałem a nie odsyłałem z tekstem typu "mogę się mylić, sprawdź sobie sam". Dziwi mnie również taka ostra reakcja na krytykę. Odnośnie logiki dodatniej / ujemnej to chyba żartujesz? Cytuję za wikipedią : Jeśli...
Nie wiem, w jaki sposób Twój kompilator zapisuje liczby binarne, ale lepiej zmień na hex. DDRD = 0xFF; /* Początek nieskończonej pętli */ while(1) { PORTD = 0x2; _delay_ms(530); PORTD = 0; _delay_ms(530); }