Witam Juz sobie z tym dzisiaj poradzilem, ale dzieki ;-) Swoja droga dziala mi to troche za wolno (wiadomo, pierwsza ramka rc5 tracona jest na przerwanie). Zastanawiam sie, czy moze ktos kiedys popelnil wstawke assemblerowa obslugujaca rc5 z przerwania? Zastanawim sie jeszcze nad kodem standardu sony, jakies doswiadczenia?
Owszem w konfiguracji Timera głupi błąd, ale ku mojemu zdziwieniu przerwanie działało. W liczeniu czasu chyba się koledze przecinek przestawił. Przerwanie w teorii kompilatora bascom trwa ok 0,16ms. W praktyce: po dodaniu w przerwaniu " toggle portb.0" częstotliwość generowanego przebiegu prostokątnego to 3,289kHz więc przerwanie wykonuje się z częstotliwością...
Rozwiązałem w międzyczasie ale dzięki bardzo. Przyjrzę się Twojemu rozwiązaniu. Ja nie mam ograniczenia liczby bajtów. Zapisuję je do tablicy a tablice wysyłam na LCD po Stopie. Adres mam ustawiany sprzętowo z portu mikrokontrolera. Obsługuję tez General Call. Do czasu wyświetlenia blokuje przerwanie od TWI aby niczego nie stracić - nie robiłem bufora...
Witam jestem tu nowy aczkolwiek zaawansowany w bascomie AVR Musisz ustawić prescaler i wpisać wartość counter0 lub timer0 żeby przerwanie przychodziło co określony czas. Osobiście się z ty nie zgadzam bo jeśli INT0 to nie timer tylko podanie standardowo zera na jedno z wejść w 8515 jest to PD2 lub INT1 PD3. Ja osobiście dałbym waita pod koniec przerwania...
Tak jak innemu koledze napisałem. Nie wolno mieszać sprzętowej obsługi uart z programową. Polecenie print najpierw sprawdza scon pod względem czy nie wysyłany akurat jest bajt, nsatepnie drukuje dane do sbuf, ustawia flagę wysyłania i czeka aż wyśle. Dlatego masz problem. Albo wyrzuciś print albo przerwanie od serial. W takim prostym przypadku proponuje...
Zamieszczam kod Proszę tego nie zrozumieć jako narzekanie a jako uwagi: 1. Pomiar temperatury. Funkcja jest, nie ukrywajmy tragiczna i cud że działa. Nie wolno tak pisać. Odczytujesz tylko 2 z 9 bajtów odpowiedzi czujnika. Nie sprawdzasz w ogóle: - czy czujnik w ogóle reaguje i odpowiada na komendę 1wreset - czy suma kontrolna się zgadza Kiedy czujnik...
W zasadzie co ten program robi? Bascom jest wolny- ale procesor wykonuje instrukcje co 0.125us przy tym zegarze. Załóżmy 1000 cykli w pętli- zajmie mu 125us policzenie stanów 0 na wejściu i co dalej? Od wykrycia 0 powinien zblokować na jakiś czas zmianę stanu, odliczyć czas w ms a nie w us i zmienić stan wyjścia. Timer i ewentualnie przerwanie.
Co do bascomowego symulatora to działa on u mnie bardzo wolno, a Hardware simulator wyświetla jakieś bzdury Symulację można przyśpieszyć dodając $sim , ale działa to przez usunięcie opóźnień, więc może zmienić zachowanie. W każdym razie polecam przyjrzeć się co się dzieje w pamięci RAM. [url=https://avrhelp.mcselec.com/index.h...
Bo obsługa przerwania też zajmuje trochę czasu- ileś taktów zegara. Bascom jest "bezpieczny" dla użytkownika i odkłada na stos wszystko- a nie tylko to co potrzebne. A potem zdejmuje ze stosu. Ale za to działa wolno. Spróbuj : on timer0 etykieta przerwania nosave. Ale to będzie szybsze i mniej bezpieczne. Albo ASM.
Jeśli chodzi o resterty, to czy mogą one być spowodowane dużą ilością zmiennych zadeklarowanych, oraz to że wykożystuje przerwanie ( 42 zmienne i przerwanie na przepełnieniu TIMER1 co 0,2sek). Czytałem gdzieś że zmienne powinny być deklarowane w odpowiedniej kolejności. W symulatorze działa ok ( i tam się niezawiesza), chociaż działa bardzo wolno. Gdyby...
Przerwanie masz teraz co 262ms. A sprawdź jak działa samo wyświetlanie: [syntax=basic4gl]'...konfiguracja wstępna Do Locate 1 , 1 Lcd "ABCDEFGHIJKLMNOP" Locate 2 , 1 Lcd "ABCDEFGHIJKLMNOP" Locate 1 , 1 Lcd "0123456789ABCDEF" Locate 2 , 1 Lcd "0123456789ABCDEF" Loop End[/syntax] Jeśli tak będzie za wolno to daj znać.
Ostatnio mecze się z takim samym problemem. Podczas odczytu z DS przerwanie właziło i rozwalało cala transmisje,czemu nie wyłączysz przerwania na czas pomiaru? Z drugiej strony jak wylaczysz -bedzie krotkie migniecie wyswietlacza,aby temu zapobiec trzeba inteligentnie manipulowac zatrzaskiem... Nie podałeś schematu ,ale domyślam się ze nie jest możliwe...
a szybko i wolno to znaczy z jaka częstotliwością? Może zamiast polecenia bitwait zrób: do loop until pinb.1 = 1 cls nie powinien tu być problemem. A najlepiej sygnał taktujący zliczaniem podaj na pin INT0 lub INT1 i ustaw przerwanie żeby reagowało na zbocze. Wtedy inkrementacje zrobisz w przerwaniu a w pętli głównej tylko wyświetlisz wynik. Na marginesie...
Właśnie sprawdziłem poprawny zapis użycia funkcji LOAD i nie ma tam znaku "=" tylko "," W każdym razie dzięki za info... bo mi coś ta funkcja nie działała do końca (chyba). A co do CKOPT to nie znalazłem tego :( Na screenie, którego załączyłem są wszystkie fusebity do ustawienia.. nie widze tam CKOPT-a (BASCOM 1.11.9.0) widze na screenach, że kolesie...
O jaką różnicę koledze chodzi?. O fakt, że dla zwykłych (blokujących inne przerwania) przerwań wykonanie instrukcji w kodzie przerwania, a wykonanie ich w pętli głównej na podstawie ustawionej flagi to praktycznie to samo?. Mniej więcej właśnie o to. Tak czy siak mamy niepodzielny fragment kodu blokujący inne "procesy". Co innego gdyby to rozbić na...
duzo bym nie zmienil dodal jeszcze kondensatory 100nF do kazdego ukladu scalonego. Jedyne co to bym pozmienial wyjscia np. zostawil bym sobie wolne int1 przerwanie (ostatnio doswiadczylem jaka to cenna rzecz) gdybys chcial dodac odbiornik podczerwieni itp. zostawil bym wolne wyjscia pwm i 2 podlaczyl do mostka-h l293d co by pozwolilo ci jeszcze sterowac...
Albo zrób przerwanie od timera np: co 2,5ms i np 1 przerwanie 1wreset; 2 przerwanie następny rozkaz do ds-a po start konwersji kolejne przerwania czekasz na zakończenie konwersji i dalej tak samo kolejne przerwania odczytują temperaturę; jedno przerwanie jeden rozkaz, nie zapomnij o crc. Sam niedawno tak robiłem ( w ramach walki z nuda 6 ds-ów ) i bardzo...
Witam. Mam malutki problemik. W porcie 3 wykorzystuje przerwanie INT0 i INT1 i zastanawiam się czy mogę wykorzystać któreś z pozostałych wyjść do wyprowadzenia jakichś bitów. Wyjść zegarowych (T0, T1) nie chciałbym ruszać, ale zostają jeszcze TXD, RXD, WR, RD (jedyne wolne, a musze wyprowadzić jeszcze dwa sygnały).
SPI w oparciu o przerwania nie ma sensu robić - taktujesz go o ile dobrze rozkminiam Bascoma z FCLK/4, czyli wysłanie jednego bajta zajmuje 32 takty zegara. A więc co 32 takty procesor dostaje przerwanie, którego czas wykonania jest znacznie dłuższy niż owe 32 takty, w efekcie procesor praktycznie ciągle jest w przerwaniu i nie może realizować innych...
Teraz to już nie wiem co Ty chcesz stworzyć , gotowy projekt na LM7001 http://sq1ftb.prothost.pl/articles.php?a... z którego chyba korzystasz , rozumiem że chcesz w inny sposób wprowadzać zmiany częstotliwości ale nie możesz do tego używać portu C na którym masz LCD , Port D.2 , D3 to enkoder wykorzystujący przerwanie . Masz gotowy projekt wystarczy...
A może wyłumaczyć mi ktoś tak jaśniej niż whelpie bascoma ;) co to jest ten prescaler i co on dzieli. Może tak po kolei jak twój program widnieje: 1. Jeżeli PORTB jest przeznaczony do obsługi LCD to nie konfiguruj go w ogóle w stylu jaki podałeś w pierwszym poście. Config Portb = &B11111111 : Portb = &B11111111 ===> źle!!! Może to powodowac zakłócenia...
Piotrek1970 - całkowicie się z tobą zgadzam jeśli chodzi o wartość developerską Arduino. Ja miałem na myśli, że w miarę proste konstrukcje, przy odrobinie doświadczenia, można a nawet warto zrobić "od strzału", z dedykowanymi rozwiązaniami. Początkującym jak najbardziej polecam rozpocząć z gotowym hardware. Hanslik - jeśli wolno mi zaproponować, wejdź...
Zasada liniowego sterowania fazowego jest taka: 1. Przejście przez zero generuje przerwanie zewnętrzne INT (opadające zbocze), w którym: a) wyłączasz bramkę optotriaka b) przeładowujesz TIMER wartością, którą odczytujesz z tablicy w zależności od aktualnego poziomu mocy. TIMER ten będzie odliczał opóźnienie włączenia optotriaka c) uruchamiasz TIMER...
Poprzez metodę testowania różnych konfiguracji, doszedłem że znacznie lepiej działa konfiguracja: - prędkość 9600bps - deviation 120kHz - bandwidth 340kHz Taka konfiguracja działa znacznie dłużej, ale i tak po pewnym czasie moduł przestaje generować przerwanie. Na pinie VDI wtedy ustawia się 0 i tak stoi (normalnie to się szybko zmienia 000101101010101111...)....
wiem już chyba w czym rzecz, chyba tajmer1 musi zbyt dużo zliczyć impulsów aby nastąpiło pierwsze przerwanie od niego a on właśnie obsługuje wyświetlacz,muszę chyba wpisać wartość wstępną do niego przed pierwszym przerwaniem.... Dodano po 4 zmieniłem prescale tajmera 1 z 1024 na 1 i jest oki :-)
Parę uwag: Disable Urxc - zbędne, po co? If Kod_znaku <> 13 Then Enter = 0 If Kod_znaku = 13 Then Enter = 1 Po co dwa sprawdzenia? Bascom jest okrutnie wolny i bez tego. Ale tak naprawdę to chodzi o to: Waitms 20 Co 3 dni piszę tutaj to samo zdanie: "żadnego oczekiwania w obsłudze przerwania!" Skoro specjalnie blokujesz przerwanie na 20 ms, to...
Według niej w trybie idle zatrzymany zostaje zegar CPU, zegar Timerów działa nie przerwanie. Zatem nie będą występowały ŻADNE problemy z stabilnością zegara RTC, gdy: -w pętli głównej procesor będzie wprowadzany do trybu IDLE --w przerwaniu od TIMERA co 4ms odświeżane są wyświetlacze LED - Jest zgłaszane co przerwanie od licznika TIMER2 pracującego...
Kiedy w końcu zrozumiecie, że nie każdy chce zostać programistą i ludzie czasem programują sobie po to by coś zrobić i mieć z tego satysfakcje. Wiem jak oprogramować ADC i to nie tylko w Bascom, ale zauważ że piszemy tu o Bascom. Języku który upraszcza wiele rzeczy dając Ci określoną ilość prostych w użyciu funkcji. Jedną z takich funkcji jest Getadc()...
Oczywiście że można umieścić ddscore w przerwaniu. Jeśli ktoś chce obsługiwać inne rzeczy poza samą syntezą, to należy ustawić timer na przerwanie np co 50 lub 100 cykli, i pozostaje czas wolny na obsługę programu, a dds sobie żyje "swoim życiem". Potem calosc zestroilbym dodajac nopy i ewentualnie korygujac minimalnie timer Jak czas odmierza timer,...
do toego o co pytasz i to bez zaprzęgania kilku przerwań i jeszcze dodatkowo timera nadaje się wprost - wyśmienicie, zresztą po to stworzony jest ten mechanizm.... .... wejście ICP procka (przerwanie Capture1). Pin ten może generować przerwania dla Timera1 w zależności od zbocza jakie pojawia się na wejściu. Gdy pojawia się takie przerwanie można odczytywać...
Ustawiłem wszystkie zmienne na byte, oprócz rozmiar i wolne w at32 do których trafia bezpośredni odczyt z sd, które potem i tak zamieniam na byte. At128- [syntax=basic4gl]'---PĘTLA GŁÓWNA----------------------------------... Enable Urxc Enable Interrupts Wait 2 Outbin = 1 Printbin Outbin Do If Cos_przyszlo = 1 Then Cos_przyszlo...
Wielkie dzieki za te informacje. Jak tylko znajde wolna chwile sprobuje ponownie zajac sie tym ATmega8535. Ale mam jeszcze jeden problem. Wlasciwie to moze nie problem, ale moze ktos wyjasnilby mi jak to jest z Timerami w tych AVR-ach. Przykladowo, Timer0 daje przerwanie np. co 10us, ale procedura wykonywana w tym przerwaniu trwa np. 15us. Co wtedy...
Powiem szczerze, że z tym INT to po prostu gdzieś zobaczyłem, że ktoś tak zliczał obroty podpatrzyłem i tak po prostu zostało. Tak zapewne chodziło o us. W asemblerze to w ogóle nie będę w stanie nic napisać, wiem tylko, że można dawać wstawki z asa do bascoma. Sugerujesz wykorzystać któryś z timerów ? T0 lub T1 (T0 mam akurat wolny na schemacie więc...
Po to jest właśnie timer i przerwanie by w stałych odstępach czasu wykonać jakąś czynność. Co niby ma kwarc do przerwań? No a te stałe odstępy czasu trzeba by jakos mierzyć i zdawało mi sie, że do tego jest potrzeby m.in kwarc, ale to jeszcze musze się poduczyć ;). Te wyświetlacze są wolne, a BASCOM czeka na odebranie każdego znaku. Bacom chyba bardziej...
800 obrotów/min to max jakie będą używane w tym enkoderze, ale nie mogę zatrzymywać przerwania, bo impulsy muszą być liczone ciągle, wszystko resztę muszę wykonać pomiędzy przerwaniami. 800 obrotów to daje impuls przerwania co 15us, a ja w pętli nic nie będę robił oprócz sprawdzania czy jest naciśnięty przycisk STOP, więc teoretycznie wszystko powinno...
Na pewno nie wystarczy zmienić INT2 na ICP1. Czytałem jakiegoś manuala i zrozumiałem to tak. ICP służy do zapisu sygnałów wchodzących na procesor oraz odmierza ich czas trwania bądź momentu w którym wystąpiły. Działa to tak, że Timer1 (16 bitowy) liczy sobie z taką prędkością jaką zadaje mu preskaler. W chwili gdy na wejściu ICP pojawia się zbocze sygnału...
Sekundę chcę wykorzystać do wykonania pomiaru z DS18B20 co trochę zajmuje To musi być dokładnie co 1000ms? DS18B20 potrzebuje 750ms na przetworzenie temp. , więc jak odczytujesz PCF'a kilka razy na sekundę to bez problemu DS "zdąży" . Jak wykrywasz zmianę sekund odpalasz DS'a i czekasz do następnej zmiany. Wtedy odczytujesz temp. i znowu odpalasz DS'a....
Dzięki za pomoc. Zastanawiam się, czy nie lepszym rozwiązaniem będzie podanie SCK mastera dodatkowo na INT0 slave. Tak żeby pierwsze zbocze zegara wywoływało przerwanie. Czy wtedy transmisja przejdzie bez problemów? I bezbłędnie przy użyciu samych poleceń SPI IN/OUT? Zależy mi na transmisji od razu 8 bajtów. A jak jest z UARTem? Nie miałem okazji jeszcze...
no teoretycznie dało by się ale ja chciałem to zrobić na diodach. jesli chciał być to przerobić na lcd to musiał być zablokować przerwanie odświeżajace diody czyli usunąc linijkę Enable Timer0 w pliku config.bas oraz dodać wyświatlanie czyli zmienić procedure save w pliku led.bas w sumie to część kodu nie będzie wtedy używana ale ale nie spowoduje to...
Ja nie znam dokładnie bascoma ale moge dorzucić kilka uwag, i dołaczę się z pytaniem? Czy bascom atomizuje zmienne? Jeśli nie, to w petli głównej masz: I_count = 0 a w przerwaniu: Incr I_count istnieje ryzyko że przerwanie nie nadpisze zmiennej I_count. Generalnie dotyczy to wszystkich zmiennych używanych w przerwaniu. Wyjątkiem jest gdy bascom umieści...
Ostatnie czasy na Elce coraz więcej nie działających procesorów/Programatorów/za szybko wykonywujących się opóźnień... W związku z tym może warto by było zrobić coś w stylu "Kompedium" co zrobić, jeśli nie działa...Jeśli macie jakieś z życia przykłady piszcie, będę uzupełniał:) Nie działa procesor: 1) sprawdź czy jest zasilanie na WSZYSTKICH Nóżkach...
Witam! Mam następujący problem: Kiedy włączam obsługę przerwania z portu szeregowego, procesor strasznie zwalnia, nie wyrabiam się w czasie z programem... Program jest w Bascomie, kontroler to Atmega32. Wszystko zwalnia tragicznie, nawet jeśli w podprogramie przerwania napiszę od razu powrót: Serial_int: Return Sprawdziłem też: Serial_int: Toggle PORTB.3...
Pisząc posta masz możliwość i powinieneś zapakować kod w "Listing kodu: SYNTAX wybierz" i tam wybrać "Basic Bascom" Zupełnie inaczej to wygląda i da się czytać. Napisz lepiej w komentarzach do kodu co Ty myślisz że to robi bo ja to widze tak: Co 500ms czyścisz wyświetlacz i wyświetlasz zmienną Sek. Zmienna zmieni se dopiero za minute i dwie sekundy...
Bardzo bym sie zdziwil gdyby ten program w jego oryginalnej postaci lub nawet z pozniejszymi poprawkami mogl funkcjoniwac! Po pierwsze: Jest on nie pelny, nie tylko brak jak juz ktoz zauwazyl, deklaracji rodzaju, typu uC i jego cyklu pracy (czestotliwosci). Pomimo faktu ze nie ma w programie pomiarow czasu to ta informacja nie moze byc pominieta. W...
Witam Mam taki problem. Program wysyla plik binarny 57kB z PC do mega a on do zewnetrznej pamieci(testuje na mega32 i mega128). Wyglada ze AVR nie jest w stanie wyrobic z transmisja, jakby za wolno wewnetrznie dzialal i dane sie nadpisuja zanim obsluzy przerwanie. Na PC program pisze w vb6 oto fragment kodu Open nazwa For Binary Access Read As #2 For...
A jeśli wolno spytać ,dlaczego chciałeś zrobić to w(na) przerwaniu :?: Pzdr. Piotrek Sz.
http://obrazki.elektroda.net/44_12749499... Witam serdecznie! Projekt ten jest moim pierwszym projektem który był tworzony nie tylko z chęci nauczenia się czegoś, czy wykorzystania jakichś elementów, lecz ze względów czysto praktycznych i użytkowych. Cele: Ograniczenie ilości pinów wykorzystywanych przez wyświetlacz graficzny LCD Opis układu:...
Co do bascoma...jako ze generuje wolny kod to nie możesz wepchnąć rozbudowanej obsługi licznika w przerwanie, bo pogubisz takty albo wykopyrtniesz procesor bo sie stos przepełni(w przypadku gdybys w obsłudze przerwań nie wyłączał przerwań, a w trakcie trwania jego obsługi wystąpiło następne przerwanie i tak w kółko) Musisz wziąć pod uwagę czas reakcji...
Witam W prockach dopiero raczkuje. Robię obrotomierz do samochodu (choć można zastosować to wszedzie). Oparłem to na atmega16 bo taki akurat teraz mam, ale docelowo ma byc na 2312.Na razie jest wszystko w fazie testowej na biurku, ale założenia są takie: na kole zamachowym umieszczam siakiś czujnik, podaje to na układ formowania impulsu, z którego będę...
Program o który mi chodzi miałby działać tak: mierzę napięcie na jednym z pinów, jeśli jest ono mniejsze niż pewna określona wartość to na innym pinie pojawia się bardzo szybki przebieg prostokatny, powiedzmy 600kHz. Napięcie wzrasta- na wyjściu jest 0. Teoretycznie można by to zrealizować za pomoca przerwania: Maksymalna częstotliwość TINY13 to 9,6Mhz....
przerwanie bascom bascom przerwanie rs232 przerwanie bascom
grant president volvo silnika 500gb seagate barracuda
sterowanie nawiewem późno wstaję turbo
Odys Fino X22 – gdzie pobrać firmware, jak zaktualizować oprogramowanie TV vivo X200 Ultra – jak ustawić język polski, OriginOS, MoreLocale, globalny ROM