W wyniku kompilacji Twojego programu powinny powstać dwa obrazy pamięci. Jeden dla pamięci flash mikrokontrolera - zawiera on kod programu. Drugi dla pamięci eeprom mikrokontrolera - zawiera zawartość pamięci eeprom - w tym wypadku jest to liczba 3. Programowanie pamięci eeprom to po prostu wgranie tego wsadu. Z jakiego środowiska korzystasz? Np. w...
Nie wiem nic na temat tego jaką funkcję ma pełnić to urządzenie, ale... 1. Offset należy określić dla każdego kanału osobno i w zależności od aplikacji może to być różnie zrobione. Najprościej zamontować urządzenie na kole, którego oś obrotu jest pozioma i powoli obracając określić wartości minimalne i maksymalne dla każdej z osi (X,Y,Z,Rx,Ry,Rz). Wbrew...
Nie wymaga. Zmiana ADMUX zawsze dotyczy następnej konwersji, nie wpływa na bieżącą.
W terminalu masz podgląd na port RS232, który jest portem wirtualnym. Nie sądzę aby ATMega to ruszyła musiałbyś napisać hosta usb i dopiero próbować czytać dane z urządzenia. Jedyne rozwiązanie to GPS z wyjściem RS232 w standardzie NMEA-0183. Dostępne moduły OEM lub inne odbiorniki typu Garmin, Trimble, Motorola i pewnie kilka innych. p.s.: możesz zainteresować...
Wydaje mi się że wybieranie kanałów w ten sposób nie zadziała. Jak raz wpiszesz tam 7 (0b111) to już nie wrócisz na cokolwiek mniej, ale to nie nie tłumaczy twojego problemu. Spróbuj do ADCSRA wpisać stałą w ramach startu konwersji, a nie |= Zobacz czy numery bitów są dobrze tłumaczone, zgodnie z dokumentacją mega8. Jeśli faktyczne próby robisz na bardziej...
Spróbuj jeszcze tego: W tej linijce jeśli chcesz mieć wewnętrzne napięcie odniesienia powinno być: ADMUX=ADMUX | 1<<REFS0 | 1<<REFS1 i zamień kolejność linijek: ADMUX=ADMUX | 1<<MUX1; ADCSRA=ADCSRA | 1<<ADSC; //start pojedynczej konwersji while(bit_is_set(ADCSRA,ADSC)... MANETKA=ADCH; ADMUX=ADMUX &...
Witam, Zapis do pamięci jest zbyt wolny. Dla ATMEGA8 zapis jednego bajtu do EEPROMu trwa ok. 8.5ms Natomiast odbiór jednego znaku (10bitów) przy prędkości 9600bodów trwa 1.04ms. Tak więc w Twoim przypadku zanim zapiszesz odebrany bajt do EEPROMu to zdąży przyjść już kilka następnych których nie zdążysz obsłużyć. Pozdrawiam JarekC
Przeczytać rozdział dokumentacji o przetworniku analogowo-cyfrowym (ADC) i na tej podstawie napisać program. Możesz wzorować się na jednym z dziesiątek tysięcy programów dostępnych w Internecie. W dokumentacji też jest przykład programowania.
Pytanie jak generujesz sygnał w pilocie. Sygnał musi być modulowany chyba nośną 36kHz - tylko wtedy odbiornik sprowadzi wyjście do stanu niskiego. 36kHz można łatwo sprzętowo generować wykorzystując jeden z timerów pracujący w trybie PWM, wystarczy ustawić wypełnienie na 50%, częstotliwość na 36kHz i można nadawać poprzez załączenie/wyłączenie timera...
Co się tak uparłeś Mariusz na ten kod dla 8051 jak chcesz użyć ATmega8? Pisałem przecież: B-51 a B-AVR traktują RC5 inaczej . Dlatego im prędzej zapomnisz o tym kodzie dla 8051 tym bliżej będziesz rozwiązania Swojego problemu dla ATmega8. TCON.0 to tryb pracy INT0. Książka Tomasza Stareckiego w dłoń i strona 63 oraz 168.
Obsluge karty sd na atmedze 8 da sie zrobic bez problemu, bo sam nawet robilem. Jedyne co mnie zastanawia to ten schemat, ktory znalazles w internecie. Po pierwsze atmega163L, ma max. predkosc taktowania 4MHz, dlatego nie rozumiem dlaczego autor tego schematu daje kwarc 16MHz. Nie spodziewałbym sie dobrych efektow pracy po takim czyms. Po drugie. Bezsensownym...
Może to pomoże: [url=http://www.elektroda.pl/rtvforum/to... [url=http://www.elektroda.pl/rtvforum/to... [url=http://www.elektroda.pl/rtvforum/to...
bo nie masz wygaszania diodek: if (pomiar < 250) { PORTD |= (0<<PD5);//zapalamy pd5 PORTD &= ~(1<<PD6);//gasimy pd6 } else { PORTD |= (0<<PD6);//zapalamy pd6 PORTD &= ~(1<<PD5);//gasimy pd5 } delay_ms(10); PS. czemu nie używasz biblioteki util/delay.h...
Witam może tak: ADMUX&=0xF0; ADMUX|=kanal; Ty zawsze masz MUX = 0001
a po co ci takie duże zmienne uint16_t decicelsius; uint16_t subzero, cel, cel_frac_bits; tam zdaje sie powinny być unsigned char no i tu hd44780_putInt((decicelsius/100), 10,0); chyba powinno być (decicelsius/10) - jak sama nazwa wskazuje decicelsius zwraca wartość w dziesątych stopnia np. 26.5°C -> 265
problem tkwi w tym, że program masz do obsługi układu DS1820, a podpięty masz DS18 B 20 (różnią się one rozdzielczością i sposobem zapisu temperatury w rejestrach). W internecie znajdziesz masę programów pod BASCOM i nie tylko obsługujących ten termometr.
To zależy, czy ta oś ma mieć rozdzielczość większą niż 8 bitów - Ty decydujesz. Ma mieć?
Ten schemat to tragedia. Aż mi się nie chce wierzyć, że to projekt z Elektroniki Praktycznej i to jeszcze z marca tego roku (!). Zastosuj poprawne zasilanie i inne ważne aspekty wpływające na jakość pomiarów: http://mikrokontrolery.blogspot.com/2011...
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...
1. Włącz BOD'a w fusebit'ach 2. Dla pewności omiń np 8 pierwszych komórek EEPROM'u i nic do nich nie zapisuj.
Za każdym razem, kiedy wgrywam program na procesor za pierwszym odczytem pojawiają się właśnie śmieci, a nie dane, które były wcześniej zapisane, więc chyba jednak w momencie programowania procesora właśnie "wpalam" eeprom. Wiem tylko, że można uniemożliwić zapisywanie eepromu w fusebitach. Niezupełnie, w fusebitach można tylko ustawić, aby nie kasował...
ja znalazlem cos takiego http://www.computer-engineering.org/ps2m...
W funkcji pomiart1() nie czekasz na koniec pomiaru. Dlaczego?
1. Nie definiuj F_CPU w kodzie programu z tych powodów: http://mikrokontrolery.blogspot.com/2011... 2. nie lekceważ warningów: http://mikrokontrolery.blogspot.com/2011... 3. To nie jest prawdą: Źródło odniesienia jest ustawione jako wewnętrzne 2,56V. 4. Nie linkuj plików .c biblioteki a jedynie...
Dokładnie tak jak kolega mankinen napisał. To jest jedna z pułapek przy stosowaniu aliasów. Zazwyczaj z tego powodu nie stosuję aliasów, a jak już to zawsze daję aliasy podwójnie np. [syntax=basic4gl]OPrzycisk alias pinb.0 Zprzycisk alias portb.0 [/syntax] Pierwszy kiedy mam coś odczytać z pinu, a drugi gdy zapisuję jego stan.
Spróbuj zmienić kolejność na taką: '--------konwersja temp dla wszystkich dsow 1wreset 1wwrite &HCC 1wwrite &H44 Wait 1 1wreset 1wwrite &H55 2 1wverify Dsid1(1) 'wysyłamy adres pierwszego czujnika 1wwrite &HBE I1 = 1wread(2) '--------------------------------- 1wreset 1wwrite &H55 1wverify Dsid2(1) 'wysylam adres drugiego czujnika...
Spokojnie możesz z niego czytać. Będzie tam to co ustawiono bez względu na zewnętrzne warunki czyli to o co Ci chodzi. Działa jak rejestr podręczny. By the way - krócej niż zadanie pytania na Forum zajeło by Ci zapis czegoś do wybranego rejestru i odczyt czyli test tezy :P
Jakaś zmienna zmiennoprzecinkowa: "float" lub jeśli będziesz korzystał z biblioteki math to wtedy lepiej "double". Trzeba tylko pamiętać że jest to dość "kodożerne". Wiąże się to z działaniami na zmiennych wielobajtowych. Z tego co testowałem avr-gcc w tym zakresie, to jak chcesz oszczędzić pamięć programu lepiej przechodzić na stały przecinek. Ma to...
Witam, zakładam że rzeczywiście zapisujesz coś do EEPROMa. Temat był już poruszany, ponieważ ATmega przy wyłączaniu/załączaniu zasilania ( w szczególności jeśli napięcie wolno narasta/opada - wolno dla kontrolera!! oczywiście ) jesli nie są spełnione określone warunki potrafi ( i robi to często) zapisywać przypadkowe dane do pamięci EEPROM. Poświęcony...
Sprawą oczywistą jest, że musi być separacja galwaniczna , pytanie tylko w którym miejscu. Najkorzystniej chociaż nie najtaniej wychodzi zrobienie dwóch modułów do pomiaru i jednego centralnego do sterowania, wyświetlania i obliczeń. Moduł pomiarowy to albo mały procek albo ADC gadający np. po SPI. Separacja to najprościej na transoptorach. Są inne...
Bo nie zablokujesz możliwości odczytu, jedynie odczytany program to będą całkowite bzdury. Co do tych dwóch ton, to kiedyś pisali o tym w EP, ale tam było o prostych picach. Przyjżyj się odczytanemu programowi z zabezpieczonego procka, przecież to kolejne wartości bajtów, a nie program
Nie za bardzo: - AGND masz połączone z masą przez kondensator, ma byc bezpośrednio - AREF ma być połączone przez kondensator do masy - AVCC ma być połączone przez dławik do VCC - RESET - wywal wszystko co masz na tym pinie, obecnie masz go na stałe zwarty do Vcc, co uniemożliwia programowanie - GND stabilizatora jest niepodłączone - jeśli jako Vref...
Na temat fuse bitów był osobny temat wałkowany i to dobrze ale narazie ich nie ruszaj bo "uwalisz" procka. DS-y są "wyczulone" na czas w którym następuje konwersja i jesli bedzie nieodpowiedni(wg noty 750ms) to DS moze wariowac i w ogole nie mierzyc(nie zdarzy wykonac konwersji). Jesli chodzi o ADC to w zasadzie różnica jest taka ze przy standardowym...
Przy odczycie takiego czyjnika możesz uzyskać max 99,9 , więc po co zmienna single. Po prostu dla wyniku np 22,5 stC wyliczasz liczbę 225 a później robisz: [syntax=basic4g] calkowite = wyliczonazmienna / 10 dziesietne = wyliczonazmienna mod 10 i pomiędzy wstawiasz kropkę na wyświetlaczu[/syntax]
Podwieś linie SDA i SCL do Vcc przez rezystory 4.7 k i będzie OK i dopisz do programu następujące linie: Config Scl = Portc.5 Config Sda = Portc.4 oraz I2cinit Pozdrawiam...
Ja miałem podobne problemy i okazało się, że to z powodu funkcji czasowej delay_us. Zastąpiłem ją inną i wszystko zaczęło chodzić OK. Zastosuj tą: void delayus(unsigned char t) //parametr t od 0 do 255. { do{asm("nop");}while(--t); } W miejscu gdzie masz zdefiniowaną częstotliwość oscylatora wpisz też: #define F_CPU 8000000ul
a 8MHz masz?:> Sprawdź PCB Rezystor 4.7kΩ masz na linii danych? Może podaj konkretnie co pokazuje sie na lcd. "Przyczepiliście się" :D do sprzętu , a żaden z Was nie zajrzał do kodu ;) A błąd ukrył się sprytnie , w deklaracji zmiennej T1 , która powinna być typu Integer , a jest ... :?: Piotrek
A może masz odwrotne zasilanie diody A-K jakimś cudem?
Problemem może być napięcie referencyjne, jeśli nie jest odpowiednio podłączone może pływać, np. zmienić się pod obciążeniem jeśli zasilasz z niego układ czy coś tam jeszcze. Stąd różnice w pomiarach. Użyj może wewnętrznego 2,54 V , ale musisz też dzielnik zmienić, mam nadzieje że o kondensatorach jak najbliżej ATmegi nie zapomniałeś? 2) podłączenie...
To są linie RxD, TxD od portu szeregowego. Jeżeli port szeregowy jest włączony, to nie ma możliwości korzystania z tych linii jak ze zwykłych we-wy.
Temat ten był już wałkowany n razy Zerknij do datasheet'a DS'a Wydaje mi się że czas po odebraniu bitu jest zbyt krótki, z tego co pamiętam to tam min 75 us powinno być Tu masz kawałek działającego kodu, przerób sobie pod swoje komendy #define ONEWIRE_PIN PB2 #define ONEWIRE_PORT PINB #define ONEWIRE_DDR DDRB static uint8_t onewire_reset() {...
Ja wiedziałem, że tak będzie ;P
Tutaj masz gotowy przykład bez użycia float-ów (oszczędność pamięci): http://mikrokontrolery.blogspot.com/2011...
A może masz czujnik DS18B20, upewnij się że jest to DS1820. Ale dziwne, najpierw termometr działał poprawnie a później przestał. Zastanawia mnie jeszcze to że (jak piszesz) czujnik reaguje na zmiany temperatury bo zmienia się zmienna T1, a nie da się odczytać temperatury. Ciekawe w czym jest problem.
1. Poszukaj coś o słowie kluczowym volatile. Zastanów się gdzie w Twoim programie go brakuje. 2. Odmierzasz 0.1 s i w tym czasie liczysz impulsy. Ale zanim zaczniesz liczyć to wcześniej wykonujesz w przerwaniu obsługę LCD. Więc właściwie liczysz w czasie 0.1s - czas obsługi LCD. Jesteś pewien, że jest on stały? Uwzględniasz to w obliczeniach? Albert
Witaj :) Da się coś zrobić , musisz dać miedzy wejście przetwornika ADC a masę rezystor powiedzmy tak 10 kΩ i powinno być dobrze . Pozdrawiam i powodzenia Bartek :)
Najlepiej wszystkie jak najwyżej, do tego wypadałoby użyć równoległego programtora i powyłączać wszystkie "sposoby programowania", SPI, debugWire jeśli jest;) Dodano po 45 Oczywiście, żeby całkowicie zablokować możliwość komunikacji z układem;) Czytaj dla klienta docelowego.
Ja to lubię tak: Zmienić ATmega8 na 88- ta sama cena. Potem w rejestrze ADCSRB ustwić ADTS0...2 tak jak potrzeba- np. przerwanie od Timer0 Compare Match A. Timer0 ustawić tak aby i tak go wykorzystać jako timer systemowy- oba przerwania wykorzystać albo tylko żadanie obsługi przerwania. A reszta w głównej pętli. Ale to jest co ja lubię- wykorzystać...
Masz rezystor podciągający? Niektórzy o nim zapominają.
Czym jest spowodowany fakt iż nie dostarczając napięcia do dsa " pracując w konfiguracji dwóch linii danych z podciągnięciem i masa " na pc czujnik działa ok a po podłączeniu do up nie można odczytać danych? Komunikacja jest poprawna ponieważ jest możliwe odczytanie id dsa. Ogólnie tym, że połączenie w trybie dwuprzewodowym (pasożytniczym) wymaga bardziej...
Jakiej reakcji się spodziewasz, a co obserwujesz? Co zrobiłeś z VREF?
No to jak się zastanawiałeś nad tym, to powinieneś zaskoczyć o co chodzi... Po prostu należy najpierw wyłączyć maskowanie roku i dnia tygodnia (więc zamiast 8 do rejestru 0 wpisać wartość 0), potem odczytać cały bajt, zamaskować niepotrzebne bity w danym bajcie: najpierw rok i odczytać dzień miesiąca, potem zamaskować dzień miesiąca i odczytać rok -...
A w jaki sposób wyszukujesz te czujniki? Należy to zrobić przez SEARCHROM, zapisać gdzieś wszystkie adresy, a przy odczycie temperatury wywoływać kolejno te adresy. Wyszukiwanie wszystkich układów: unsigned char ow_search_address() { uint8_t conf_mask[8]={0}; uint8_t i, j, retcode; unsigned char dev_num; for(j=0;j<3;j++)...
No niby jest lepiej, ale wskazuje już 4.99V przy prawdziwym 4.20. A czy kanał wpływa jakoś na wynik? Kanały nie wpływają na wynik, ale sposób podłączenia mikrokontrolera jest w tym wypadku baaardzo istotny. Podałem Ci wyżej link gdzie jest to opisane. Dodatkowo zainteresuj się trybem uśpienia mikrokontrolera ADC Noise Reduction . No i jeszcze jest...
Troszkę dziwnie wygląda ta pętla główna, ze zmienną "corobic" :) Mogłeś dać po prostu w do-loop wywołania kolejnych procedur i jedną pauzę np. 1 sek. Do tego w procedurze wyświetlania dajesz CLS - nie przeszkadza Ci miganie ? Spróbuj dodać na początku dyrektywy ustalające stos : $hwstack = 32 $swstack = 32 gdyż używasz GOSUB. Może pomyśl o procedurach...
Ten kod napisałem na podstawie dokumentacji temometru i dokumentu opisującego interface 1 wire od atmela: A do dokumentacji AVR-ka zaglądałeś :?: Zastanów się, czy można uzyskać niski stan na magistrali 1wire, jeżeli pin do niej podłączony jest ustawiony jako wejście :?: [syntax=c]unsigned char _DS18B20_ReadByte() { _DATA_DDR &= ~(1 << _DATA_WIRE);//...
Mam taki problem. Mam mały projekt na Atmega8. Moja funkcja przyjmuje wartości 1 - 5 I ten parametr chciałbym regulować potencjometrem. Tylko że z potencjometru odczytuję wartości 0 - 255 I tu nie wiem jak zrobić żeby jedno skrajne położenie było traktowane jako 1, a drugie skrajne położenie jako 5 (i oczywiście wszystkie wartości pośrednie z dokładnością...
Masz podciąganie linii danych?
Przecież dokładnie tak napisałeś program - za pierwszym razem wyświetla puste łańcuchy daty, a po wyświetleniu wpisuje do nich datę.
Nie kojarzę już przy jakiej okazji otrzymywałem ten błąd. Ale zaproponować Ci mogę skorzystanie z tych kodów:[url=http://www.stsystem.elektroda... czujnik, [url=http://www.stsystem.elektroda.eu/pr... czujników. Kody działają w 100%, pochodzą z wdrożonego rozwiązania. Przyjrzyj...
Nie ma mowy o błędnym podłączeniu bo kabelki milion razy sprawdzane a wymiana procesora na płytce prototypowej nic nie narusza. Taaak, to niestety typowe przedstawienie problemu a wtedy nie ma co się dziwić, że ktoś wyciąga takie dziwne i absurdalne wnioski jak np ten, że to niby tajemniczy AVRDUDE blokuje procesory :( po czym w 99,99% takich przypadków...
To nie Bascom jest przyczyną tylko źle napisany program ;). 1. odczyt timera1 16bit odbywa się po przez rejestr pomocniczy TEMP, ten rejestr jest też używany przez inne procedury i funkcje i jeśli jest użyty to właśnie niszczona jest wartość High timer1 bo ona tam jest wpisana gdy używasz komendy. wpisując tak timer1 do tablicy możesz gubić High timer1....
Jak masz AVCC podłączone do 5V to wartość ok 600 z 1024 daje 2.93V co mniej więcej odpowiada dokumentacji czujnika i określa odległość 3cm (patrz dokumentacja) Dla odległości 10cm wartość ta wynosi ok 1.3V więc ADC powinien zwracać wartość >= 267. Pamiętaj o polu martwym czujnika przy bardzo małej odległości.
Kod Chestera jest dobry, po prostu od swoich tajnych doświadczeń mógł uszkodzić cyfrowy czujnik. kaktus
http://tomeko.net/termometr.php -> projekty testowe dla ATmega8 i PIC18F2550. Przewód ma u mnie około metra - taka sama zwykła płaska taśma, kondensator przy czujniku. Nie zauważyłem by był wrażliwy na dotykanie. W main.h zdefiniowane jest F_CPU warunkujące opóźnienia w bibliotece delay i ustalające baudrate dla RS232. Jeżeli będzie wyższe niż rzeczywiste,...
Ale ADT pracuje jako Slave, więc to Ty dyktujesz jaki ma być SCLK (tylko żeby nie był większy niż podaje Analog).
Spróbuj ustawić BOD, też tak miałem gdy go nie używałem.
Chciałbym odczytać bajt ze wskazanego miejsca w eepromie 24c16 za pomoca nastepujacego kodu: odczytbajtu: SER W OUT TWBR, W CLR W OUT TWSR, W LDI W, (1<<TWINT)|(1<<T... OUT TWCR, W RCALL wait IN W, TWSR CPI W, 0X08 BRNE error LDI W, 0XAA OUT TWDR, W LDI W, (1<<TWINT)|(1<<T...
Przede wszystkim zastosuj bramkę z wejściem Shmidta - np. 74132. Tu prawdopodobnie tkwi problem w pojawianiu się oscylacji przy sygnale sinusoidalnym. AK
Co jest nie tak ? Delikatnie mówiąc wszystko. 1 Timer nie wiem co liczy, cały jest źle napisany i nie powinien działać, bo np: przerwanie od timera powinno być zadeklarowane przed pętlą główną i nie w warunku. Zmienna Reload nie jest zerowana i zwiększa się do maximum typu Word Zmienna M (w zamierzeniu chyba od minut) też się zwiększa do 255 Zmienna...
Dla 74HC165 linia ST_CP powinna być ustawiona na 1 podczas przesuwania a u Ciebie zostaje na 0. Jeśli funkcja void Trigger_Latch(void) jest dobra dla 74HC595 to w funkcji odczytu ustaw ST_CP na 1, a po zakończeniu odczytywania z powrotem na 0.
Jakieś sugestie? Mnóstwo: http://mikrokontrolery.blogspot.com/2011... Pokaż zdjęcia, byśmy mogli sprawdzić połączenia. Im więcej tym lepiej.
witam, jaki typ programatora mam ustawic w avr studio dla tego układu?? mam avr studio 4 i wszystkie obskugiwane programatory sa na com....
Znalazlem jakis stary programik.... odczyt 2 kanalów ADC z częstościa 100 razy na sekunde... Analize pozostawiam Tobie...(podpowiem że Help wszystko wyjaśni) Pozdrawiam $regfile = "m8def.dat" $crystal = 11059200 $baud = 19200 Config Adc = Single , Prescaler = Auto , Reference = Off Config Timer1 = Timer , Prescale = 256 On Timer1 Pomiar Enable...
Co to znaczy że testowałeś już różne ustawienia crystal? Musisz być pewien co masz ustawione - w innym wypadku to nie robota ;) Fabrycznie nowa pracuje na 1MHz. Napisz prosty programik [syntax=vbnet] $crystal = 8000000 Config PORTB.0 = Output : Led Alias PORTB.0 Do Toggle Led Waitms 500 Loop[/syntax] To chyba oczywiste że dioda powinna mignąć 60 razy...
A co pisze w nocie katalogowej np atmegi8, przy rejestrze ADC Data Register ADCL and ADCH
W zasadzie tak, ale można też programowo zrealizować port dwukierunkowy (poprzez modyfikację rejestru DDRx), czyli np. po wysłaniu jakiejś danej z linii portu B, te same linie przechodzą w stan odczytu.. :)
Dziękuję za objaśnienie. Zdaję sobie sprawę, że warunki są ekstremalne a rozwiązanie dalekie od idealnego. Jednak nie ja jestem odpowiedzialny za samą czujkę. Z tego co wiem brane były pod uwagę inne rozwiązania, w tym ultradźwięki. Ze względu jednak na rozmiary (średnica czujki ma mieć max 8mm średnicy), położenie w zbiorniku i ogólnie mocno eksperymentalny...
Config Serialin = Buffered , Size = 80 Enable Interrupts Dim _Flaga_1s as Bit _Flaga_1s = 0 Config Timer1 = Timer , Prescale = 64 Enable Timer1 : On Timer1 Co1s Cls Do If Ischarwaiting() = 1 Then Znak = Inkey() Print Chr(znak) ; End If if _Flaga_1s = 1 then ' ------> a tutaj wyświetlaj już sobie spokojnie co chcesz co...
A możesz to bardziej mi nakreślić :D Jeden bajt=8bitów=wartości od 0 do 255 chodzi o funkcje transmit ... tylko jak to rozwiązać ? Dane trzeba by zapakować w jakaś ramkę, dać znak startu i końca, żeby zsynchronizować się etc. Nie do końca rozumiem Twój program z tą funkcją itoa, wydaje mi się że źle jej używasz, zamieniasz zmienną na wskaźnik który...
Układ uszkodzony, dane w nim po prostu zamarzły i tyle - to samo mi się przydarzyło z m88v - czytam normalnie (program się nawet wykonuje) ale nie mogę zmienić nawet jednego fuska. Równoległy wysokonapięciowy również nic nie wskóra. Układ można wystawić na aukcję jako "niesprawdzony", przy obecnych cenach pewnie ktoś się skusi ;)
Ten powinien działać musisz wszystko wykonywać w odpowiedniej kolejności. A wspak to on może też czytać sensu to nie będzie miało (2 znacznie nawet objaśnienie :D )musisz zmienić na adres-1, kierunek musi być dodawany zakres adresu dla zmiany kierunku zamienione miejscami i adres musi się zaczynać na 80. A Pętla for next jest tylko po to aby wykonać...
A z jaką częstotliwością odczytujesz dane z ADC? Może za wolno?. Jeszcze ten równoległy kondensator, on zachowuje się jak filtr dolnoprzepustowy.
Witam. Przewertowałem juz cały internet i elektrodę.... Tak na szybko: Funkcje RESET_PULSE i send - do d... :cry:
32 binarnie to 00100000
No tylko coś ci średnik wskoczył przed while ; while(1) więc błąd a zabrakło średnika po linii [syntax=c]DDRC |= LED_PIN[/syntax] powinno być: [syntax=c]DDRC |= LED_PIN;[/syntax] jak to poprawisz to zadziała także na Atmega8
Witam, Szczerze mówiąc nie miałem dziś za bardzo czasu na analizę kodu, wybacz... zwłaszcza że nigdy nie pisałem w bascomie, przeczytałem tylko, sprawdziłem krytyczne sygnały i nie widzę błędów Wklejam swoje kawałki, pisane chaotycznie bo były potrzebne tylko na chwilę, mam nadzieję że będą zrozumiałe: char nrfTest() { setPWRUP; clearTXEN;...
Witam, Mam do Szanownych Kolegów pytanie: Czy odczyt danych z pamięci EEPROM wpływa na jej trwałość (jeśli tak, to w jakim stopniu), czy też pamięć ta zużywa się tylko poprzez zapis i kasowanie? W datasheecie producent podaje tylko informacje odnośnie ilości gwarantowanych cykli zapisu i kasowania (chyba, że coś źle poczytałem), tak jakby odczyt nie...
Jest prostsze rozwiązanie - użyj wzmacniacza LM358 lub LM324. Pracuje poprawnie od zera do prawie VCC i nie wymaga zasilania symetrycznego. Kosztuje chyba ok. 3zł. Dodano po 1 LM358/LM324 możesz użyć bez żadnych zmian na schemacie (tylko że wyprowadzenia w LM358 są trochę inaczej, ale te sprawdzisz sobie w dokumentacji).
Atmega8 ma przetwornik ADC na Porcie C, natomiast Attiny25 ma ADC na Porcie B który deklarujesz jako wyjście i tu może być problem. Internal_2.56_extcap Czy w związku z tym na AREF masz podłączony kondensator do masy? Tak w ogóle to daj schematy, bo Atmega8 i Attiny25 to dwa różne układy więc napisanie że są tak samo podłączone jest mylące i błędne.
mialem podobny problem umnie wariowal przy odczytywaniu temp ponizej 15 stopni problem był w 1 wire za dlugo czekalem na odczytanie znaku nieszcesne 1 μs jak zmniejszylem czas to poszlo
Witam szukałem ,próbowałem i nie mogę dojść jaka powinna być prawidłowa metoda. Otóż tak mam do wyświetlenia grafikę którą umieszczam poleceniem $eeprom w wewnętrznej pamięci. problem mam z tym ze nie wiem jak ja odczytać. readeeprom wymaga podania adresu z którego odczytuje z danej grafiki readeeprom adres , grafika ale jak zrobić żeby mi wczytało...
No ok. Tylko jak ją podłączę do układu, to wszystko działa. Dodam tylko że powinna być w tym projekcie ATMEGA8 która powinna być na 12MHz, a ja dałem ATMEGA8L.
Przeczytalem kilka poradników A wystarczy jeden, jedyny datasheet. I Table 75. Input Channel Selections Albert
Na c sie nieznam. Myśle ze kolega wie że pilot nadaje najpierw kod pilota potem dopiero kod klawisza może twój program po odczytaniu pierwszego bajtu konczy juz odczyt. Kiedyś miałem program na 8051 pokazywał na lcd pełny kod każdego klawisza ale chyba mnie gdzies zapodziało to
do odczytu portów służą rejestry PIN
pomylka pryz wpisywaniu mialobyc 2,69 - napięcie Vref mikrokontrolera. a co do dzielenia, lepiej jest mnożyć przez odwrotność - szybciej. I faktycznie przejście na 5V, nie zwróciłem na to uwagi bo autor mówił o użyciu wewnętrznego Vref. Pozdrawiam, GSM
Dokładnie tak.
Zanim zaczniecie mnie odsyłać do funkcji szukaj, prosiłbym o przeczytanie postu do końca, ja nie znalazłem w archiwum odpowiedzi na moje pytanie. Mam ATmega8 połączonego z CC1000 na porcie D: PALE - PD2 PDATA - PD3 PCLK - PD4 Używam biblioteki ze strony chipcona i winavr. Musiałem poprawić plik nagłówkowy, ale teraz już się wszystko kompiluje, ale nie...
Prosze o pomoc w atmega 8, czy jak ustawię BLB12 0; BLB11 1;BLB02 0; BLB01 1 to zablokuję odczyt programu z uP ale będę mógł go skasować i powtórnie zaprogramować? Pozdrawiam
odczyt ds18b20 atmega8 atmega8 odczyt portu atmega8 odczyt eeprom
rosyjskie układy protect radio kenwood bloody sterowniki
sharp lc46le824e falownik powmr
Komunikat o błędzie silnika - diagnostyka i naprawa Wymiana tylnych błotników w Volkswagen Passat B5 kombi