Jeśli używasz WinAVR, zajrzyj do katalogu z bibliotekami i poszukaj pliku delay.h. Zawiera ona funkcje opóźniające, jako parametry podajesz tylko ilość ms lub us.
Spróbuję trochę jaśniej napisać: Wiadomo, że monitor z głośnikami posiada kabel, który podłącza się do karty dźwiękowej. Pytanie dotyczy tego, czy w monitorze jest tylko wzmacniacz i głośniki, czyli mam monitor i typowe głośniki stereofoniczne w jednej obudowie i nic więcej, czy dźwięk przechodzi przez...
Wielu ludzi nagrywa filmy z telewizji na różne nośniki, kiedyś to były kasety VHS, obecnie jest to komputer lub stacjonarna nagrywarka DVD. I pewnie niejednemu zdarzało się że włączył nagrywanie nieco później od momentu rozpoczęcia filmu i stracił część czołówki. Teoretycznie najlepiej jest włączyć...
Ja nie wiem, jakim cudem wyszło Ci 40us. Jeden obieg wewnętrznej pętli (wait_us_1) wykonuje się w 10 cyklach. Wartość w R16 jest nie w mikrosekundach a w dziesiątkach mikrosekund. Pętla wykona się w czasie: 255 * 10 (255 obiegów wewnętrznej pętli, każdy po 10 cykli) +1 * 9(ostatni obieg wewnętrznej...
Witajcie. Otóż zacząłem dziś pracę z 16-bitowcami oraz z C. Może za dużo zmian jak na początek, ale jak narazie nie jestem zrozpaczony.. Mam tylko problem z generowaniem pętli opóźnień (chcę pomrugać diodą). W asm mi to wyszło, a w C nie mogę dać rady. Próbowałem z zapętlonymi pętlami i nic. Jest...
Witam Mam napisać w Aseblerze pętle opóźniającą (400us) dla 8051. f(xtal)=12MHz Tt=1us Napisa... coś takiego: ------------------------ STAR... R0,#100 2takty DEL: NOP 1takt DJNZ R0,DEL 3takty ------------------------ N=2+...
Bardziej skłaniam się ku C ale pewne rzeczy trzeba liznąć z assemblera-szkoła. Jak wprowadzić proste opóźnienia, np. do świecenia diodą? Moja wizja według tego co znalazłem (dla przykładu właśnie miganie diodą): [syntax=asm] LJMP START SETB P1.7 NOP NOP NOP NOP CLR P1.7 NOP NOP NOP NOP LJMP...
Nie napisałeś jaki to kompilator i jaki procesor... Przypuszczam, że $ to oznaczenie zapisu szesnastkowego. A pętli teoretycznie są dwie, ale masz jakiś skok do nieokreślonej etykiety (LOOP0)
Witam. Pętle opóźniające niespecjalnie nadają się do precyzyjnego odmierzania czasu, niemnej chciałbym się dowiedzieć co dokładnie wpływa na czas ich wykonania. Funkcja opóźniająca wygląda tak: [syntax=c]void Delay(unsigned int delay) { for(;delay>0;delay--) { } } [/syntax] Przy niskiej...
Problem w tym, że to opóźnienie będzie dokładne tylko pod warunkiem, że nie korzystamy z przerwań, a jest to warunek wysoce nierealistyczny w każdym realnym projekcie. Oki, przyznaję, jestem na haju - parę tygodni temu popełniłem obsługę LCD włącznie z inicjowaniem bez jakichkolwiek pętli opóźniających......
Wielkie dzięki TWl !! Wszystko działa, jak zdążę to podsumuje jutro temat i go zamknę jako rozwiązany! Jeszcze raz wielkie dzięki TWl!! Zamieszczam przykład, nie będę rozpisywał się odnośnie budowy samego spartana 6. Ważne żeby współrzędna X dotyczyła SLICEM lub SLICEL. Tworzy on kaskadę połączonych...
Witam! Zaczynam programowanie w C++ Builder 5. Właściwie to też nie znam podstaw C, ale mam pewien projekt do wykonania i od razu muszę zacząć naukę od środka. Projekt polega na sterowaniu układem przez port lpt. Już mi się udało zrobić pewne klawisze i zapalać kolejne diody podłączone do lpt, ale...
Witam ponownie! Dziękuję wszystkim za pomoc. Udało się to uruchomić :) Zacząłem od zrobienia porządnego algorytmu, napisałem sobie wszystko na kartce, przestudiowałem datasheeta... co prawda ciężko się to czyta, ale można się dużo rzeczy dowiedzieć :) Niemniej jednak: - wyrzuciłem swoje zmienne...
Nie, brak takiego ostrzeżenia, za to teraz mam następną nowinę: po zaprogramowaniu tym: #include <avr/io.h> #include <stdlib.h> //Połączenie LCDka do Portów: //B2 - RS, B3 - E, B4 - B7 D4-D7 //#define LCD PORTB //podłączenie DS18B20 - do portu D0, podciągnięte do zasilania...
Rzeczywiście moja funkcja raczej nie jest przystosowana do pracy wielowątkowej. Nawet nie wiem jak to zrobić. Problem rozwiązałem definiując zmienne globalne, które są zmieniane w przerwaniu, a pętla główna podejmuje działanie w zależności od ich wartości. Podobne problemy miałem wcześniej, kiedy jeszcze...
Witam. Proszę o pomoc.Napisałem program mający na celu sterowanie trzema kanałami PWM.Proszę o sprawdzenie działania pętli ,nie mam pojęcia gdzie może tkwić problem.Funkcje PWM na początku powinny być wywoływane z wartością 0,a następnie wartość ta zwiększana płynnie do wartości następnego elementu...
Witam Projektuję miniaturowe urządzenie wytwarzające wysokie napięcie w pętli sprzężenia zwrotnego dostaję informację o prądzie w układzie w celu jego stabilizacji. Obiekt regulacji charakteryzuje się sporą niestabilnością i stosunkowo dużą bezwładnością (emisja polowa z nanorurek węglowych). Póki...
Właśnie myślałem też nad takimi rozwiązaniami (a szczególnie z jedną pętlą ze wszystkim i działa). Zastanawiający jest jeszcze taki problem, jeśli w pętli generuję przebieg prostokątny (na jednym pinie) o częstotliwości np. 0,5 Hz czyli odstępy czasowe po 1 s między zmianami stanu pinu, a jednocześnie...
Witam Wejscie zegarowe 74109 jest podlaczone ok Prosze uzyc dostepnego przerzutnika z zastosowanego ukladu tak aby uzyskac polaczenia jak w artykule z linku JK jako przerzutniki D jako dzielnik [url=]Link Proszę zmienić wartość rezystora za mostkiem na coś w zakresie 1 do 5k, zamiast 10...
Zainteresuj sie plikiem delay.h w WinAVR, tam są gotowce realizujące pętle opóźniające o zadanej długiości w ms i us. Przykład #include <util/delay.h> ... delayms(1... szczegóły patrz delay.h
Witam Kiedyś podczas poszukiwania materiałów i gotowych przykładów na PICe znalazłem stronę na której jest skrypt generujący takie właśnie pętle. Wpisujesz kilka podstawowych parametrów i otrzymujesz gotowy kod do wklejenia.
Acha, sprytne, zwiększając zmienną będę mógł przerwać tę procedurę, nit tak jak w przypadku Waitms... Chyba że źle myślę. Super, działa. Zrobiłem zmienną Integer i zliczam w pętli Do...Loop od 1 do 750 co 1ms, a jak przycisk jest naciśnięty, to wychodzę z pętli.
Więc popraw. Przedstawiając własną propozycje. Drgania maja mały wpływ w tym przypadku. "Ale Timer1= counter zlicza impulsy z zewnątrz. " zgadza się i na dodatek ma przydatną funkcje reakcji na zbocze która się tu przydaje Na pin.x będzie niedokładnie to jedno. Stan na pinie jak będzie 1 cały...
Opóźnienia nie są krytyczne - masz przecież zegar sterujący transmisją. Więc zamiast 4us (o ile to opóźnienie istotnie tyle miało) możesz dać większe - chodzi tylko o to, aby CLK nie miało częstotliwości wyższej niż akceptowana przez SHT dla danego rezystora podciągającego. Co do samego delay - działa...
Witam, można napisać własną funkcję, która będzie w pętli wywoływać _delay_ms(1). Liczba iteracji da wtedy opóźnienie w ms. Można także wykorzystać timer do generowania opóźnień jeśli jest jakiś wolny. Pozdrawiam, TQelektronik ... [url=] jest dokładnie opisany problem.
Jest jeszcze inna możliwość. Poniżej schemat obwodu rozmagnesowującego z monitora samochodowego (autobus). Najprościej rzecz ujmując cewka rozmagnesowująca stanowi obwód rezonansowy z kondensatorem o odpowiednio dobranej pojemności. Dodatkowo użyto układu opóźniającego wyzwolenie tyrystora, który wraz...
dlaczego pętla for(i=1000; i>0; i--){ ... ... suma ++; } nie powoduje zadnego opoznienia? W Symulatorze AVR po przejsciu przez ta petle widze, ze zagar "tyknął" tylko dwa razy. Natomiast jeli w petli umieszcze westawke asemblerowa nop. for(i=1000; i>0; i--){ ... ... __asm(&quo...
Ja bym tak to przetłumaczył: "Programowalne elementy opóźniające są szeroko stosowane w wielu układach wielkiej skali integracji takich jak cyfrowe pętle opóźniające, pętle synchronizacji fazy, generatory sterowane i przetworniki analogowo-cyfrowe, spośród nich najpopularniejsze są cyfrowe pętle opóźniające....
Witam mam następujący problem. Mam banalny program napisany w C w programie AVR Studio v4.13 dla procesora ATMega64 - moje pierwsze kroki z tym środowiskiem. I mam dosyć spory kłopot a mianowicie w kodzie: #include <avr/io.h> #include <util/delay.h> #define SET_DIODE PORTD|=0x10 #define...
Jeśli chodzi o ostatni punkt, to po prostu nie wysyłaj cyfry z poprzedniego wyświetlacza do następnego. Co prawda, akurat w Twoim programie mignięcie za nim trafią nowe dane, nie musi być widoczne, ale kto wie? Niestety to nic nie dało. Zauważyłem jeszcze jeden błąd. Nie wiem jak długo trwa pętla...
Bylo juz dosc pozno jak na mnie i nie myslalem zbyt trzezwo :P Dziekuje za odpowiedzi. Zmodernizowałem sobie kodzik ktory wyglada teraz tak: #include <avr/io.h> // dostęp do rejestrów #include <util/delay.h> // zawiera definicję _delay_loop2 int main(void)...
LJMP START ORG 100H START: LCALL LCD_CLR MOV A,#'D' PUSH ACC LCALL WRITE_DATA MOV A,#'=' LCALL WRITE_DATA MOV A,#'D' ; domyślam się, że tą linijkę trza dodać POP ACC LCALL WRITE_HEX CZEKAJ: ; pętla opóźniająca, znak się wyświetlił, chwile czekamy MOV A, #100 NOP NOP NOP DEC...
Witam, po krótkiej przerwie :) Dziękuję wszystkim za fatygę, jednakże żadna z odpowiedzi nie jest zadowalająca. Po pierwsze chciałbym jasno powiedzieć, że układ od strony ideowej jest poprawny w 99.99% Co do tego układu to ma jedną wadę. W trakcie wpisywania danych do tych rejestrów dane...
Jest tak dla tego żeby można było dokładnie przeanalizować działanie programu. Cytat z pomocy Bascom'a: Dyrektywa $SIM rzeznaczenie: Instruuje kompilator by nie generował pętli opóźniających dla instrukcji WAIT czy WAITMS. Spowoduje to zwiększenie szybkości symulacji. Składnia: $SIM Opis:...
Witam, Przyszła pora na umieszczenie części drugiej. Sprawozdania z pracowni z Zespołu Szkół Łączności w Poznaniu. Pracownia mikroprocesorowa. Sprawozdania dotyczą programowania mikrokontrolera 8051 dokładniej systemu DSM-51. Język programowania: Assembler. Jest jednak różnica, gdyż sprawozdanka...
Freddy -> po tym jak porównałem kod asemblera dla pętli opóźniającej 300ms przez FastAVR (krótszy nieco kod) do kodu wygenerowanego przez MikroPascal (nieco dłuższy) to - jasno widać, iż autor FastAVR'a przyłożył się bardziej do optymalizacji kodu. Z tego co mówisz zapewne nie tylko przy fragmnetach...
witam. Kol.Seb jeśli stosuje się zestaw podstawowych słów w bascomie, unikając gotowców i tworząc własne procedurki, to można napisać sensowny program i w bascomie tak jak w C i nie będzie robił dziwnych rzeczy. A co do pomocy w temacie to już ją uzyskałeś, tak jak napisano unikaj waitms itp. opóźnień,...
Witam. Robię miernik częstotliwości na ATmega8 z wyświetlaniem na LCD HD44780 w trybie 4-bit (mam zrobiony prototyp). Opanowałem już wyświetlanie (z obsługą BF), ale teraz przystawiło mnie z pomiarem liczby impulsów zliczanych na wejściu T1 mikrokontrolera. Wynik co prawda jest wyświetlany, lecz jest...
Jak masz delaya 100ms to on czeka 100ms. Czyli jak zmieniłeś diodę, a potem jest delay 100, i potem znowu zmiana diody to pomiędzy zmianami diod będzie 100ms. Tyle że przez te 100ms procek nic nie robi tylko czeka te 100ms w pętli opóźniającej. A jak zrobisz na przerwaniach to będzie tak: Zmieniasz...
Poprzedni kod wysyłał setki razy ten string a nie jeden raz - o jakiej ty pętli sprawdzającej mówisz? - gdy zworka była naciśnięta to w tej twojej pętli był on wysyłany wielokrotnie aż do jej skończenia. Albo z uwagi na bliżej nie określony czas trwania tych twoich pętli mógł być w ogóle nie wysłany. Nie...
jaka to liczba dziesiętna 0xffff, jak to przekształca sie? na normalną liczbę bo zapomniałem :D, jak napiszę pętla opóźniania w języku C, to ile to opóźnianie będzie trwało ? (for(i=0;0xffff;++i){}) ????????? Dodano po 1 albo jak napisać program który by mi opóźniał jakąś czynność 3 sek, i...
Możesz zbudować zewnętrzny zegar 4MHZ na bramce cmos i podać go do Attiny13 lub zamienić pętle opóźniające , jeśli się da oczywiście . Przy zegarze 4.8 będziesz miał do zliczenia o "kilka impulsów" więcej aby uzyskać ten sam czas. Przykładowo w programie autora jest : ldi licz1,0x32 ; początkowa...
Procedura odczytu adc ( adcread(kan); ) sprawdza flagę zakończenia konwersji, delayadc(); jest tylko po to, aby kolejne odczyty adc nie odbywały się zaraz jeden po drugim, przy takim delay i 33 pomiarach doskonale np. tłumi mi się 50Hz, delayadc nie jest po to aby czekać na koniec konwersji, po za tym...
(at)bobeer pamięci oparte o linię opóźniającą np. (at)thereminator co do różnych technik wytwarzania echa, może gdzieś dostępne są nagrania porównawcze z echa sprężynowego, dyskowego, taśmowego, mosfetowego itp. ? (at)a666mi w zastosowaniu w CB te szumy pewnie nie miały znaczenia, ale w torze...
Tiny_Nixie Zegar inny niż wszystkie Chciałem zaprezentować konstrukcję, której realizacja trwała około 10 lat ;), bo mniej więcej tyle minęło odkąd zakupiłem cztery Lampy LC-531 na krakowskiej giełdzie elektronicznej. W tym samym czasie też wpadły mi w ręce pierwsze AVR-y z niektórymi z nich...
No opóźnienie jest po to żeby diody za szybko nie migały. Zagnieżdżenie to umieszczenie jednej pętli w drugiej. Bardzo mocno wydłuża to działanie pętli opóźniającej. To jak byś chciał żeby diody powoli migały. Uczywiście pętla wewnętrzna musi chodzić na innym rejestrze niż pętla wewnętrzna. Np. ldi...
Witam, ostatnio borykam się z problemem obliczenia ilości cykli jakie wykona mikrokontroler podczas wykonywania pętli opóźniającej. sam kod pętli wygląda tak: DELAY2: movlw 00000000h ; 1 movwf COUNT1 ; 1 movwf COUNT2 ; 1 LOOP3: decfsz COUNT1 ; 256 + 1 = 257 goto LOOP3 ;...
Co do samego lcd (sterownik hd44780 czy jakoś tak) nie będę się wypowiadał bo niewiele pamiętam a i 4-ro bitowego trybu nigdy nie używałem. Jednak wypowiem się na temat opóźnień. Otóż pętle nic a nic nie opóźnią bo nie wykonają się ani razu. Zastosowałeś zły warunek i>1000 . Powinno być i<1000...
Potrzebuje pomocy w napisaniu wsadu do mikrokontrolera w c++. AtTiny2313 po odebraniu 2 znaków typu char z portu RS232 (16 bitów) ma wysłać je do podłączonego generatora AD9833. Schemat jest w dołączonym pliku. Głównie chodzi mi o to, żeby na wyjściu PB1 mikrokontrolera był stan wysoki lub niski,...
Witam. Mam takie pytanie. Robię termometr na atmega 16 + ds18b20 + 2xled. Prawie wszędzie godzie dotąd widziałem podczas odczytu temperatury z ds 1820 jest pętla opóźniająca. W moim programie jak wstawię pętle to w tym czasie wyświetlacz mi nic nie wyświetla. Ponieważ sam ten program tworzyłem a odczyt...
To co "pożera procesor" z programów DOSowych w Pascalu to procedura DELAY i inne pętle opóźniające. Sprawdź czy w tym programie są tego typu procedury lub pętle i trzeba je usunąć lub zastąpić windowsowymi metodami oczekiwania. Jeżeli chcesz mieć "żyjące" okienko i coś co wykonuje się długo,...
Jak już wspomniano, mikrokontroler nie gubi przerwań. Może natomiast: - w przerwaniu zmieniać wartość rejestru IO, ale w pętli głównej może wystąpić modyfikacja tego rejestru, przez co uzyska się nieatomową operację w pętli głównej i istnieje możliwość utraty zmian dokonanych w przerwaniu - ten przypadek...
Mnóstwo instrukcji assemblera nie może być wykonanych w jednym cyklu zegara... w sumie wszystkie wykonywane są w tej samej liczbie i zależy ona od PIPELINE'u... pobranie instrukcji, dekodowanie, wykonanie, zapis do pamieci, akumulacja wyniku. To jest taki najprostszy pipeline i umożliwia on właśnie...
Błądzisz. 0. Dlaczego wybrałeś muzealny mikrokontroler, dla którego informacji trzeba szukać w skanowanych artykułach z gazet wydawanych w latach 80-tych i 90-tych zeszłego wieku? 1. Dlaczego nie chcesz korzystać z timera? To jest najlepszy i najpewniejszy sposób odmierzania czasu. 2. Czy program...
a funkcji zastępującej _delay_ms() sprawdzam w pętli while moment ustawienia flagi. Czyli obsługa przerwań działa, ale w pętli głównej nic pożytecznego nie robisz. Jaką widzisz różnicę względem _delay_ms(xxx) poza nieco dokładniejszym odmierzeniem czasu? Już lepiej w każdym przerwaniu z timera sprawdzaj...
koniecznie zajrzyj na tą stronkę, którą podałem tu w swoim pierwszym poście - zobacz jak tam gościu wręcz na pająka robi układziki na Atmega8 ;) podłączysz sobie w ten sposób na początku diodę LED i pobawisz się nią, na początku proste miganie za pomocą pętli opóźniających - to podstawa , później poznaj...
Witam, zbudowałem prosty układ do testowania przerwania zewnętrznego INT/RB0. Według moich założeń układ po wciśnięciu microswitcha powinien wygenerować przerwanie i naprzemiennie zapalać i gasić diodę na porcie D ;***** COMPILATION MESSAGES & WARNINGS ***** ERRORLEVEL -302 ; register in operand...
Jak zastosujesz preskaler to będzie to tak, jakbyś wcale nie zmienił zegara. Oczywiście możesz czasy po prostu podzielić przez 16 - jeśli są one generowane przez pętle opóźniające. Jeśli korzystasz z funkcji opóźniających zdefiniowanych w delay.h to wystarczy zdefiniować poprawnie symbol F_CPU, tak,...
W Atmelach podczas reset-u a zapewne przy inicjalizacji Bascomowego stuffu, wystawiany jest na porty stan wysoki. Trzeba o tym wiedzieć, jak się projektuje część wykonawczą i przyjąć, że aktywnym stanem w sterowaniu czegoś jest niski, wystawiać zera na porty, jak trzeba coś załączyć. Żeby było widać...
W BASICu masz polecenie TIMER, dzięki któremu możesz określić jak długo jest przetwarzana pętla: t=timer repeat until (timer-t)<=100 to przykładowa pętla opóźniająca w OMIKRON.Basic'u (Atari ST), GFA Basic'em się nie bawiłem (też był na ST) ale powinno być podobnie. Być może trzeba w jakiś sposób...
Z góry przepraszam za zamieszczenie całego programu - i tak jest okrojony do minimum - ale gotowy do skompilowania (ICCAVR) Chciałem uniknąć pytań z cyklu a co masz jeszcze w programie - może się gryzie... Problem dotyczy wysyłania danych za pomocą interfejsu RS232 w procesorze AT Mega8 ( pewnie...
Hej! Potrzebuje napisac np. nastepujacy program dla robota: prawe kolo jedzie do przodu, po jakims czasie(na razie dowolnym) zatrzymuje się. Problem polega na tym, że nie działa opóźnienie. Moje testy wskazujna to, że procek nie wychodzi z pętli opóźniającej (wykonuje się wszystko do tej pętli). Należy...
Witam. Mam pewien problem, ze skomunikowaniem ATmegi z tym czujnikiem. Czytałem pokrewne posty, ale niczego one nie wnoszą do mojej sytuacji. Najpierw przedstawię mój program, a następnie disassemblację procedury obsługi pętli opóźniającej. Procedura zaczyna się na adresie 00000054 (podświetlone na...
Ten program w zasadzie nic nie robi. Ta pętla Do If Pind.0 = 0 Then Portb.0 = 0 Loop po sprawdzeniu gdy jest = 0 to ustawia dalej na zero a więc stan portu sie nie zmieni. Musisz to robić na przemian i jeszcze stosować jakieś pętle opóźniające bo jak to poleci na pełnym "gazie " to te diody...
witam Komparator ma wyzwalać przechwytywanie stanu licznika 8-bit PWM, stan komparatora jest sygnalizowany diodą LED. To dopiero początek. #include <avr\io.h> // Most basic include files #include <avr\interrupt.h> // Add the necessary ones #include <stdlib.h> #include...
to co się dzieje u ciebie po zmianie częstotliwości z 4MHz na 8MHz nie ważne z jakiego źródła czy zewnętrznego (rezonator) czy wewnętrznego (oscylator) to prawdopodobnie nie zmieniasz w programie pętli opóźniająych pomiędzy "mruganiem" diod LED. I przy większej prędkości ledwo świecą bo tak naprawdę...
ad 1/ Zwiększanie prędkości procka? Jeśli pojawią się pętle opóźniające, to w tym samym czasie procek zużyje więcej energii na wykonywanie pustej pętli (więcej instrukcji). Inaczej trzeba by na czas opóźnień (najlepiej wszystkich) usypiać procka. Jeśli w kodzie nie będzie żadnych opóźnień, to jeśli przy...
ORG 0000H MOV TMOD,#00100000B ; T1 taktuje transmisje szeregowa z predkosci 9600 bodow MOV TH1,#0FDH ; Daje nam to transmisje 9600 obliczone w pracy2 0 MOV SCON,#01000000B ; trnasmisja szeregowa asynchroniczna 8bit SETB TR1 ; wlacz licznik...
Witam. Datasheet do AT89s4051 jest #include <reg51.h> /*inicjacja pliku "reg51.h"*/ long a; void czekaj(unsigned char x) /*utorzenie "czekaj" dla programu glownego*/ { for(a=0;a<475... /*pętla !!!OKOŁO!!! 1s. przy kwarcu...
To chyba zależy od optymalizacji stosowanej przez kompilator. U mnie przy optymalizacji na 1 poziomie CrossStudio wyrzucał wszystkie pętle opóźniające. Możesz użyć Timera do pomiaru czasu pętli, albo sprawdzić w symulacji, jeśli Twoje środowisko ją posiada.
Witam! Tak naprawdę dopiero wgłębiam się z mikroprocesory i języki programowania na nie. Obecnie bawię się ATTINY2313 i na nim ucze się tej sztuki, doszedłem do zabawy z PWM i podczas kompilowania programu wykrzacza mi takie cudo. [ADI_PLD-SYSTEM ~]# avr-gcc -mmcu=attiny2313 program.c -o...
Hmm masz racje, nie zajmuje się długo avr wiec mam pewnie braki. Zmieniłem SIGNAL na ISR i kod wygląda następująco: ISR (USART_RXC_vect, ISR_BLOCK) { buff[z]... || buff[z]=='T')z=0; else z++; } ISR (TIMER1_OVF_vect, ISR_NOBLOCK) { PORTC=0xFF; ...
Witam! Najlepiej będzie, gdy opiszę problem na podstawie przykładów. 120 void Delay(unsigned char ile) 121 { 122 1 unsigned int n; 123 1 unsigned int y; 124 1 while(ile>=1) 125 1 { 126 2 for(n=0; n<1000; n++){ 127 3 for(y=0;...
Czyli jak zrobiłam pętle opóźniającą (256*256 pętli) i wstawię ją to przed każdym zapaleniem poszczególnych segmentów (lcall petla:) to powinno zadziałać. Rzeczywiście te liczby do akumulatora są powpisywane w cały świat,ale to już sobie poprawie. Najgorsze,że nie mam symulatora dobrego. A takie schematy...
Zbyt czesto dokonujesz odczytow, co powoduje podgrzewanie czujnika. Dodatkowo zle zaprojektowales dla niego plytke. Powinna byc duza plaszczyzna miedzi, ktora bedzie dzialac jak radiator. Zbyt częste odczyty ? Mam dwie pętle opóźniające jedna (standardowa) przed pomiarem: for(unsigned char...
Na początek powinno być: #define DDR_SPI DDRD zamiast: #define DDR_SPI PORTB Kolejna uwaga: staraj się pisać programy nie wpisując wartości dla wszystkich pinów portu! Stan wysoki na wybranym pinie łatwo osiągniesz np. tak: PORTD|=0xF0; // dla pinów PD4, PD5, PD6 i PD7 albo tak:...
Mirek ok tylko cykliczne sprawdzanie pinów jest niemożliwe bo przejście przez pętle main() zajmuje dwie minuty ze względu na liczne pętle opóźniające. #include<avr/io.h> #include<... <avr/interrupt.h> #define F_CPU 4000000U #include<util/delay.h> ...
Pętla powoduje opóźnienie między zmianami sygnału na wyjściach mikrokontrolera. HD44780 wymaga, aby sygnałów były stałe przez pewien czas. Gdyby pętli opóźniającej nie było, HD44780 mógłby nie zauważyć poleceń lub źle je zinterpretować.
Skoro pętla opóźniająca była w porządku to czekanie na wyzerowanie SPI_SR_BSY też. Odradzałbym takie coś jeśli SPI miało by niską prędkość. Jak masz inne ważne przerwania możesz tak ustawić grupy i priorytety, że to bieżące zostanie wywłaszczone i zostaje myślenie tylko o pętli głównej.
Witam. Usiłuję napisać programik do testowania serwomechanizmów tzn. dostałem ich kilkanaście od dr i moje zadanie polega na sprawdzeniu które z nich są sprawne. Mam to napisać w asemblerze. Wydaje mi się, że program który napisałem powinien pozwolić sterować serwem w lewo lub prawo za pomocą potencjometru....
Schemat drugi jest błędny, możesz dać do portu po dwie diody LED, ale każda musi mieć w szereg "swój" rezystor. Dodano po 3 Program natomiast wykona tylko pierwszą pętlę DO-LOOP, gdyż nie masz z niej wyjścia. Mógłbyś dodać sprawdzanie przycisku w tej pętli, jeśli przycisk wciśnięty, to EXIT DO. Przy...
Nie wiem, jakich argumentów oczekują funkcje SetDir, SetValue i ClearValue - numeru bitu czy maski bitowej, ale podejrzewam, że migania z częstotliwością rzędu 30..50 Hz raczej nie zauważysz - zwiększ liczbę obiegów pętli opóźniających do np. 10 milionów. Zadeklaruj i jako volatile, bo inaczej kompilator...
O ile ten uC, który to obsługuje, ma przerwania. Nie są konieczne, ale wtedy potrzebna jest zupełnie inna filozofia pisania programu - na przykład taka, że w głównej pętli wołasz na zmianę dwie procedury, jedna z nich sprawdza, czy już czas na przełączenie się na następną cyfrę (i jeśli tak, to to robi),...
Witam, Postanowiłem dobudować sobie do zasilacza taki oto woltomierz: 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];Automatyczn... 2-zakresowy woltomierz panelowy z 4-cyfrowym wyświetlaczem LED ;Wersja...
Witam, męczę się z prawidłowym ustawieniem tego modułu do odebrania pakietu danych, który jest prawie 2x większy niż pojemność FIFO. Kombinuję na wszelkie sposoby, aby ze wskazanego DIO tego modułu odebrać właściwe przerwanie i je obsłużyć w callbacku EXTI w STM32. Nie mam większego problemu z odebraniem...
Witam! Jestem (bardzo) początkujacy i mam zapewne banalny dla Was problem, ale mnie przerasta... Jest sobie kod: .include "8515def.inc" .org 0x0000 ldi r16, 0xFF out DDRB, r16 ldi r16, 0xAA out PORTB, r16 loop: rjmp loop Czyli chcę zapalić kilka diodek. Programik się...
Pisałem tylko na rodzinę AVR (Tiny12, 90S2313, 90S8535, ATMega16) głównie w asemblerze, ale teraz mieszam asemblera z bascomem, bo w bascomie łatwiej robić pętle opóźniające i bascom "robi" obsługe lcd. Na tiny12 pisałem w AVRStudio, bo bascom nie daje sobie rady z Tiny12. Kiedyś też dłubałem troche...
Najprościej stablicować sekwencje świateł, wysyłać ją na jakiś port i dodać pętle opóźniającą o regulowanym czasie.
No ale w asemblerze jakiego procesora? Najprostszy sposób to: - włącz diodę - w pętli opóźniającej odczekaj 100ms - wyłącz diodę Dla tak długiego czasu nie stosuje się jednak tej metody i pasowałoby tu już zaprząc przerwania od liczników. myrcioch
Witam. W A'51 (to zależy od wersji assemblera) oznacza adres pod jakim znajduje sie dany rozkaz !! W rozkazach skoku oznacz on skok do "samego siebie". przyklad podany przez ciebie to poprostu pętla opóźniająca (zatrzymuje program na jakis czas) ale możesz spotkać się z tym przy innych rozkazach...
:arrow: s_ice : Wyświetlanie(własna procedurka) w asm ;), nie wiem, jak w Bascomie, można podpiać pod przerwanie timera, niech odbywa się na raty, np co 3 przerwanie (do dobrania, zależy od czasu potrzebnego na wyświetlenie jednego znaku - z pewnym zapasem - i ile razy jest on dłuższy od czasu pomiedzy...
Witam Najprostrzy program ( zakładając że silnik sterowany jest 1 logiczną ) mógłby wyglądać tak : START: MOV P1,#128 ; STAN WYSOKI NA P1.7 (dla P1.7=0 #127) LCALL OPU MOV P1,#64 ; STAN WYSOKI NA P1.6 (dla P1.6=0 #191) LCALL OPU MOV P1,#32 ; STAN WYSOKI NA P1.5 (dla P1.5=0 #223) LCALL...
W praktyce wychodzi, że znajomość asemblera + języka wyższego poziomu się opłaca. Ja w tej chwili dziobię głównie w C, ale do asemblera też sięgam. Najczęściej w dwóch przypadkach: 1. trzeba sprawdzić jaki kod generuje kompilator. AVR GCC na przykład lubi mi namieszać w pętlach opóźniających. W takich...
Ad1 Układ jest do d... (pomijam już ideę ale także zamienione we z wy). W nieskończoność to tylko cyfrowa pętla opóźniająca, w skończoność układ AGC (automatyczna regulacja wmocnienia) sterowany obwiednią dźwięku ale pod konice wyciąga szumy. Ad2 Przesunięcie o dany interwał można zrealizować...
Jaki stan logiczny ma być zliczany? 0 czy 1 ? Czy problem jest jeszcze aktualny czy już rozwiązany? Ile masz czasu na rozwiązanie tego? Napisanie od nowa nie stanowiłoby problemu, ale czy masz czas czekać? Na swoich stronach mam podobny licznik, ale jak rozumiem nie masz ochoty robić nowego, tylko...
wywal to $sim , jak pakujesz program do procesorka... ;) Przeznaczenie: Instruuje kompilator by nie generował pętli opóźniających dla instrukcji WAIT czy WAITMS. Spowoduje to zwiększenie szybkości symulacji.
Podobaja mi się perspekrywa "Ifów" asmeblerowych, faktycznie niektóre rzeczy można uprościć i zrobić bardziej czytelnymi! Proponuję jeszcze dodać podprogramy realizujące pętle opóźniające, 1uS, 1mS i może 1S? Co prawda zaraz dojdziemy do bascoma, ale takie rzeczy chyba nie popsują smaku asmeblera...
Jestem na tej grupie pierwszy raz, wiec Wszystkich goraco witam!!! Witamy na FORUM... ;) FAQ Działu Mikrokontrolery przeczytane ? ;) Chciałbym zaznaczyc, ze przejrzalem wszystkie archiwalne posty na tej grupie zwiazane z tym i podobnymi problemami i niestety nie znalazlem rozwiazania. Teraz...
Wbij program, który zapala i gasi diodę co kilka sekund, po wysłaniu np. 1000bajtów, wtedy zobaczysz w którą stronę ucieka czas > dioda miga za szybko, trzeba zwiększyć długość pętli opóźniającej generującej baudrate, za wolno, to trzeba skrócić itd. potem w celu uzyskania precyzji zwiększasz liczbe...
Jedna uwaga. Jak piszesz program który ma działać na przerwaniach to nie powinno się stosować pętli opóźniających,... GienekS :arrow: W którym miejscu są te pętle :?: zbyszekp22 :arrow: Do "pomrygania" diodą , nie są potrzebna aż dwa timery. Jeden w zupełności wystarczy ;) Piotrek PS Czy...
Robisz to w przerwaniu zegara. W jednej procedurze przełączasz jedno wyjście (zegarowe) a na drugie wystawiasz bity. A jeśli nie musi być to dokładne 100Hz to można dać proste pętle opóźniające. Najlepiej pisać coś takiego w asemblerze chyba. Pozdrawiam
Możesz napisać programową emulację, ale to na pewno da prockowi zajęcie na jakiś czas. Nie wiem ile timerów mają te PICe. No bo w sumie przydałoby się jakoś taktować tą transmisję. Można robić to pętlami opóźniającymi też. I nie wiem czy w takim programie da się zrealizować UART podwójny. To po prostu...
Jeśli pytałeś o mój kwarc to był to 4MHz ;) I nie ma za co, zrobiłem, to się podzielę ;) Jak Cię interesuje to masz tu generator kodu pętli opóźniającej. Wpisujesz kwarc, ile chcesz mieć opóźnienia i dostajesz gotową pętlę :) Pozdrawiam :)
Faktycznie miałem podać kod, ale go nie podałem, bo trochę czasu nie miałem. Nie jestem pewien, czy prawidłowo zrobiłem ten odczyt, ale mi działa. Wytłumaczenie wcześniej już podał zumek, ale ja to trochę rozwinę. Jeśli dobrze doczytałem w instrukcji HD44780, to z odczytem danych należy postępować...
problem już rozwiązany :) niejaki pan Jacek Majewski - autor książki pt. "Programowanie mikrokontrolerów 8051 w języku C" stwierdził, że pętla opóźniająca wykonująca się 0xffff razy będzie wystarczająca. Zadziałało dopiero jak wpisałem 0x9C40 - w dziesiętnym 40000. dziękuje Wam wszystkim za chęć...
medicb Twoja odpowiedź jest wyjątkowo wiele wnosząca do postu i bardzo na temat. Jeżlei chcesz tak dalej odpowiadać to lepiej się zastanów nad sensem wypowiedzi. Pozwolisz zatem, że sam zdecyduje co będzie dla mnie lepsze po zapoznaniu się z możliowściami rozwiązania problemu. A jeżlei Ty byś to wykożystywał...
Akurat na tym sterowniku robiłem na c51 i nie było żadnych problemów z tą różnicą że ja czytałem status tego sterownika a nie stosowałem pętle opóźniające. Może w tym jest problem ?
znam komendy języka C. instrukcje w c zawsze wykonywane sa jedna po drugiej, nigdy rownoczesnie, oczywiscie da sie to zrobic co napisales. To znaczy, że jak napisze instrukcje jedną po drugiej to programator wykona je w takiej kolejności? Jak oddzielić instrukcje od siebie? Zwykłym ";"?...
Wg mnie przydałaby się jakaś pętla opóźniająca bo efektów pracy tego programu na procesorze chyba nie zauważysz. Chyba że analizator stanów logicznych podłączysz.
Dave_SG dzięki za metodę, ale... nie działa :( Słusznie mówisz, że nie jest dla mnie ważne, aby synchronicznie przejść z jednego trybu taktowania na drugi. Ja bym tylko chciał, aby to taktowanie w ogóle się rozpoczęło. Sprawdziłem oscylator, jeszcze raz dla pewności przełączyłem fusebitami taktowanie...
Zgadzam się z przedmówcą. Kiedyś nie mogłem wyjść z podziwu, że program przestawał działać po załączeniu optymalizacji. Dopiero po pewnym czasie zauważyłem, że optymalizacja pod względem prędkości działania dosięgnęła również... pętli opóźniających :) Dlatego odmierzanie czasu na timerze jest najbardziej...
define w ogóle nie jest instrukcją strukturalną ani niczym co kompilator ANALIZUJE (sprawdza). Hmm... Z tego co wiem , a wiem o C jeszcze niewiele , to preprocesor "podmienia" makra na stringi i podrzuca to kompilatorowi. Poeksperymentowałem co nieco z inline i ... wygląda to nieciekawie w...
Bo to taki nijaki program, do bani jednym slowem. Porty RB0-RB3 laczysz kolejno z D4-D7 wyswietlacza (dane 4 bit). Do PA0 - RS wyswietlacza, do PA1 - E. Sygnal RW wyswietlacza musisz przylaczyc do masy. Opoznienie wywal z timera i zrob na razie normalna petle czasowa. Ten program jest do kitu, normalnie...
Bo tylko jedna linia będzie przyciemniona. Tak ma być. I dlaczego dajesz reti na końcach procedur? Reti jest dla procedur przerwań. I przeczytaj co pisałem o inicjalizacji bo dalej byki robisz. W pewnym momencie masz przesyłać dane w dwóch bajtach. Jeden po drugim bez pętli opóźniających. Zobacz...
Po pierwsze w praktyce sleep(1) wcale nie trwa 1 ms tylko znacznie dłużej. Najlepszym wyjściem jest tak jak pisał MirekCz zastosowanie dodatkowego sterownika pomiędzy LPT a silnikiem. Jeżeli bardzo tego nie chcesz to masz dwa wyjścia: bardziej eleganckie: napisać sterownik, drugie znacznie mniej eleganckie:...
Chyba już wiem co może być, tylko nie wiem gdzie jest źródło problemu. Doczytałem się, że po zerowaniu po włączeniu zasilania bajty odczytu temperatury są ustawiane na wartość 85.00 stopni i tę wartość udaje ci się odczytać z rejestrów DS18b20 (co świadczy, że procedury odczytu działają poprawnie)....
No własnie tak mi na 'autostep' raz wchodziło a raz nie. Dzięki za utwierdzenie - chyba za dużo wymagałem od programu. A czy na JTAG-u nie mógłbym po prostu zadawać stan logiczny na wyprowadzeniu (fizycznie). Czy na JTAGu pętla opóźniająca np o sekunde wykonuje się rzeczywiście w sekunde? ---- Nie...
Witam W czym jest problem. Z czasami czy z konstrukcją programu? Bo nie bardzo wynika to z treści postu. Jak chodzi o czasy to trzeba pomierzyć stoperem i powstawiać pętle opóźniające, będą dwie długa i krótka. Może to Ci troszkę pomoże Pozdrawiam
Przyczyną może być narastające napięcie zasilania. Załóżmy przykładowo, że AVR działa poprawnie od 2,7V. Przy dużych kondesatorach w zasilaczu (a napisałeś, że użyłeś 3300uF) czas dochodzenia do napięcia 'stabilnego' dla avr jest wystarczająco długi aby uC ruszył w sposób 'niestabilny'. Aby się przekonać...
Czas wyliczany na procesorze nigdy nie bedzie dokładny. A to niby czemu? Kwarc to kwarc, nie ma żadnego problemu z uzyskaniem dokładności wskazań równej precyzji zastosowanego kwarcu. Kwestia odpowiedniego programu. Wracając do oryginalnego problemu. :arrow: smyku22 Jak wygląda ta obsługa RC5?...
for(t=0;t>50000;t++); Strzelam, że ta pętla opóźniająca wykona się zero razy.
1. Ustawienia są niekompletne: zapomniałeś włączyć i skonfigurować matrycę krosującą (Crossbar) odpowiadającą za przypisania sygnałów urządzeń peryferyjnych do wyprowadzeń układu. Jeśli chcesz sprawdzić jak należy skonfigurować mikrokontroler (jego peryferia) to możesz użyć programu Configuration Wizard...
Jedna z metod to okresowe czytanie klawiszy 100 razy na sek. W moich programach prawie zawsze jest ustawione przerwanie wywołujące sie okresowo od 10 - 10000 raz na sek. Zastosowań takiego przerwaniea jest mnóstwo od stopera poprzez pętle opóźniające, PWM programowy , analizator przebiegu na dowolnej...
W twoim kodzie brakuje sterowania liniami RS i RW. W załączniku masz przykladowa bibliotekę, ktorą kiedyś napisałem sobie do obsługi wyświetlacza DM157a. Dostosuj sobie to do twoich potrzeb i powinno działać. Nie używam sprawdzania bitu BUSY, zamiast tego jest pętla opóźniająca.
...a mozesz mi powiedziec do czego ten preskaler?? bo wygnerowac 30kHz prostokat to ja umie... sęk w tym, że ja chce zmieniać czestotliwość ze skokiem 0.1...0.05Hz... i tu pojawiają się schody. Pzdr. Użyj preskalera do taktowania licznika output-capture lub wolniejszego kwarcu. Wtedy jeden krok w liczniku...
Witam. Zbudowałem prosty układ, który steruje diodami LED za pomocą AT89S51. Do mikrokontrolera dobudowany jest kwarc 12MHz. Doczytałem się gdzieś że częstotliwość sygnału wyjściowego jest 12-krotnie mniejsza niż częstotliwość kwarcu. Więc 1MHz dla sygnału wyjściowego LED to jest dość dużo. Wiem jeszcze...
Witam, właśnie piszę pierwszy program dla układu Xilinx'a XC2C256 w VHDL'u, a nie na schemacie jak to wcześniej robiłem. Mam kilka samouczków, ale potrzebuję kilka prostych podpowiedzi. 1. Jeżeli po 'process' dodam w nawiasie jakąś zmienną to będzie on wykonywany zawsze przy zmianie tej zmiennej? 2....
Witam, Mam problem z opaleniem PWM na atmega16, z wewnętrznym taktowaniem 1MHz. Kompilator avr-gcc. Otóż chciałem zrobić sobie sterownik do zabawy z diodami rgb, jednak nijak nie mogę dojść jak używać pwm. Znalazłem w necie tutorial -> i postanowiłem go wypróbować <po wielokrotnych próbach...
Witam, a i jeszcze jedno pytanie niekumatego... dlaczego program z delay.h trzeba kompilować z optymalizacją?? Funkcje _delay używają arytmetyki zmiennoprzecinkowej. W przypadku gdy używasz optymalizacji i w wywołaniach funkcji wartości argumentów są znane w czasie kompilacji (np. są stałe),...
Nic specjalnego to to nie jest, ale chciałem Wam pokazać taki mini projekcik, którym jest wyświetlacz VFD sterowany poprzez szeregówkę. Wszystkie komendy sterujące są zgodne z tymi z wyświetlaczy CrystalFontz 2x16. Do flasha (2kB) udało mi się upakować wszystkie oprócz tak egzotycznych jak kreślenie...
Odnośnie HEX-a z wersji 1.11.7.4 to sprawa wygląda następująco: 1. Konfiguracja przerwań i licznika Timer2 przebiega prawidłowo. Kod nie różni się od tego jaki występuje w 1.11.9.2 (przytoczony wyżej) 2. Wewnętrzne zmienne: _sec, _min, _hour, _day, _month, _year są aktualizowane w każdym przerwaniu....
Nelik, 1) Pomysłów było już kilka - czytaj co inni już napisali powyżej, 2) PC to nie mikrokontroler, nie zrobisz "pętli opóźniającej" bo w tym czasie OS może Twój proces wywłaszczyć x razy. Jedyne rozwiązanie: podnieść priorytet procesu (jak pisze szelus), użyć timer_create() i zaczekać na sygnał...
kli : Sprawdziłem na kompilatorze, który posiadam (avr-gcc 4.3.0) - kiedy zostanie wygenerowany taki kod, jaki wkleiłeś - na wszystkich poziomach optymalizacji oprócz -O0 jest generowany kod, który ja wkleiłem, tylko przy -O0 taki jak twój. Używanie "volatile" nie jest czymś opcjonalnym ("dzięki za...
Co do programu przedstawionego w załączniku. Strasznie marnujesz czas procesora, powinienes w przerwaniu wykonac kilka instrukcji a ty wykonujesz wszystko. Uboczną stroną jest jescze to ze musisz zapisywac wykorzystywane rejestry na stosie i "uziemiasz sobie licznk 0" Proponowałbym taki sposób: czujnik...
DAC5681 jest 16 bitowym przetwornikiem cyfrowo analogowym o szybkości 1GSPS (Giga Sample per second - miliard próbek na sekundę) z wyjściem prądowym. Został on wyposażony w szybki, równoległy interfejs LVDS oraz wewnętrzne źródło napięcia odniesienia 1.2V. Interfejs wejściowy wyposażony jest w...
Przecież to jest oczywista rzecz. Jeżeli procesor nie będzie w stanie odpowiednio szybko reagować na zdarzenia, to je po prostu przegapi. Mówiąc o uniezależnieniu programu od szybkości procesora możemy mówić jedynie, że ten sam program będzie działał dobrze na procku 1GHz i 100MHz, pod warunkiem, że...
swego czasu robiłem na atmelu 8515 sterownik midi do sterowania soundfontami z karty muzycznej sound blaster...w swim projekcie musiałem użyć kwarca 6 Mhz bo tylko o ile dobrze pamiętam przy 6 Mhz dało się osiągnąć szybkość transmisji midi 31250 Hz. Daje się także przy wielokrotnościach tej wartości. ...
Tak rozkładanie będzie przebiegać poprawnie. Powiedz mi tylko, jak TWI ma zdążyć z wysyłaniem danych, jeśli nie masz tam żadnych pętli opóźniających - nie czekasz na przyjście bajtu ani na dokończenie transmisji.
Przy okazji szperania odnośnie 74HC595 znalazłem coś idealnego dla mnie: 74HC4094 który jest pin-in-pin odpowiednikiem CD4094, tylko jeszcze muszę znaleźć sklep gdzie będzie dostępny dip a nie smd... Jeśli nie uda mi się znaleźć to zostanie mi 595. Co do czasów to nie ma się czego obawiać, odświeżanie...
Witam. Widze że wiele osób ma problemy z rfm12. Ja również męczyłem się z nimi dłuższy czas. Nie mogłem dostać przerwania w odbiorniku informującego o tym, że przyszła kolejna porcja danych. Po wyłączeniu synchronizacji w module odbiorczym (0xca87)okazało się, ze owszem z nadajnika przychodzi...
rsikon -> nie ma co być wstyd ;) "Na spokojnie..." jak widzisz, to podstawa powodzenia ;) a odnośnie kodu - wiadomo testowy - tylko jeśli nie używasz do niczego przerwania to pozostaw ciało procedury puste - kompilator wstawi sobie tylko w odpowiednie miejsce rozkaz RETI i już a w ogóle to warto...
Nie wiem, nie jestem specjalistą, ale trudno mi się zgodzić z tym, że Twój kod przerwania jest bardziej optymalny (jeśli już na optymalność wkraczamy, a w przerwaniach ona jest priorytetowa). Osiągnięcie czegoś trudnego to wielki sukces, więc warto się starać. 1. Instrukcja switch działa trochę...
Założyłem, że cli() zatrzymuje przerywania już po dokonanym pomiarze czasu tym samym zatrzymuje sam pomiar. Po wywaleniu cli także nie wchodzi do obsługi przerywania. Wyszedłem z założenia że program ma prawo działać poprawnie na układzie dopiero jeżeli będzie działał poprawnie na symulatorze, więc...
Jak dla mnie Twoje pytanie jest mało szczegółowe. Do czego ma być użyty ten DPTR? Poza tym można go traktować jak 2 rejestry DPH i DPL, ale jest już używany więc użycie go do przechowywania wartości w0 - w4 mija się z celem bo jest używany do adresowania pośredniego czyli należało by go zapamiętać. Jedynie...
Witam Próbuje zrobić program na AtMege16 Program ma działać w następujący sposób: Przyciskam 1 guzik z klawiatury (klawiaturka jest 4x4, ale wykorzystywane tylko 3x4) i ma zapalić się dioda 0 (podłączona do portu A pin 0) i zgasnąć z opóźnieniem powiedzmy 30sekund Przyciskam 2 guzik i zapala się...
polprzewodnikowy : _delay_ms może ma coś z funkcji, ale więcej to ma wspólnego z makrem niż funkcją. Przy tych makrach zabronione jest (pod rygorem ogromnych opóźnień oraz wzrostu rozmiaru kodu) używanie wyrażeń, których wartości kompilator nie może policzyć podczas kompilowania - wynika to z tego,...
Proszę, ale od razu pisze, że to wersja pre-alfa :-) Zadaniem tego sub-a jest ustawienie flagi , jeśli przycisk był wciśnięty dłużej niż 40 ms Wstawiasz to w pętlę wykonywaną co 10 ms, opisaną wcześniej ' pinb.0 do switcha.. Dim Opoz0 As Byte 'licznik pętli opóźniającej Opoz0...
JTAG'a brak czyli zostaje mi tylko symulacja Przykładowy kod programu z lewej zaznaczone dokąd dochodzi mi żółta strzałka #define F_CPU 16000000 #include <avr/io.h> #include <util/delay.h> #include <HD44780.h> #include <HD44780.c> //====Sterowanie serwem modelarskim===================== #def...
Witam. Mogę się pochwalić - dziś ukończyłem SAM ten program :) Jak działa? Przedstawię na filmie. Otóż po konsultacjach z nauczycielem po prostu miałem zrealizować w tym programie użycie licznika, przerwania oraz obsługę klawisza - i właśnie to udało mi się zrobić. Program początkowo zaczyna od zapalenia...
Napisałem programik pod tiny13 w c daje program a tu niemiła niespodzianka. .... Więc jak inaczej wygenerować liczbę losową?? Co za niespodzianka ???? To tylko i wyłącznie twój błąd. Wiele razy było wałkowane na temat tego, że do funkcji _delay_ms(xxx) nie należy przekazywać zmiennych bo...