Tak jest możliwe. Skoro otrzymujesz za duży czas to zmniejsz wartość wpisywana do timer0 (nie znam bascom więc nie wiem za co który rejestr odpowiada wartość wpisana do timer0, aczkolwiek 40kHz otrzymasz bez problemu).
Jeśli dalej używasz choćby jednej zmiennej typu Bit to nadal pomysł jest aktualny bo bitów zawsze jest osiem. Jeśli nie, to mozna wygospodarować jedną zmienną typu Byte, ale że Tiny13 to bardzo wymagający uC i mozesz już nie mieć więcej miejsca na Byte to możesz pojechac po bandzie i do przechowywania wartości wykorzystać jakiś nieużywany rejestr :D...
Witam! Po pierwsze to z reguły przyciski powinny zwierać piny wejściowe do masy a nie do zasilania. Wynika to z faktu posiadania przez procesory AVR wewnętrznych rezystorów pull-up podciągających wejścia do +vcc, czyli panuje na nich stale stan wysoki (oczywiście gdy zostaną uaktywnione). Po drugie to akurat sygnał CLK ma się zmieniać, podczas narastającego...
W PDF jest napisane, że flaga jest zerowana gdy : "interrupt routine is executed". Ja to tłumaczę jako obsługa przerwania jest WYKONANA. CZYLI po ZAKOŃCZENIU. W PDF jest też napisane, że zerujemy ją wpisując do rejestru wartość na określonym bicie 1.Czyli EIFR.0=1. Dlatego wpisując EIFR.0=0 NIE ZEROWAŁEŚ FLAGI!. Spróbuj ja wyzerować następująco If EIFR.0=1...
Teraz tu jest sprawdzany bit if(PINC & 0x08) a jak zastosuje && to cały rejestr jest porównywany z cyfrą 8 czy tak? Jak zastosujesz && to dla PINC różnego od zera będzie: "if(TRUE AND TRUE) " W przypadku wyrażeń logicznych wartość TRUE ma każde wyrażenie różne od zera. A z tym 13-impulsem to jakaś "magia"? :) Bez sygnału 38kHz TSOP będzie głupiał.
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....
To jest działający kod dla INA226 napisany dla ATMega16. Pewnie mógłby być ładniejszy, ale wiadomo - zawsze da się coś poprawić :-) Z pewnością da się łatwo zaadaptować dla INA219 Nie porównywałem datasheetów, ale sprawdź adresy do komunikacji, być może będziesz coś musiał zmienić w sekcji "inicjalizacja". Zakładam, że dokładnie przestudiowałeś datasheet...
Witam To mnie Kolega zaskoczył - jeśli chodzi ilość wysyłanych bajtów Wzorowałem się na [url=http://forum.mikroe.com/viewtopic.p... stronie, co prawda w C, ale można zobaczyć, jak tam to jest zrobione, tzn. pierwszy MAX7219 - konfiguracja przez dwa bajty ( rejestr + wartość ) drugi MAX7219 - konfiguracja przez cztery bajty ( rejestr +...
Witam czy ktos moze mnie oswiecic w jaki sposob zapisac wartosc do rejestru Counter1 pod bascomem ? Mam taki prosty program i za nic w siecie bascom nie che go lyknac ............. I taki oto blad ASSIGNMENT ERROR line 8 Procesor ma ten timer w sobie. Jezli to wina bascoma to w jaki sposob zapisac ta wartosc z poziomu jakiejs wstawki assemblerowj ?...
To co napisałeś to pewnie bascom ,ale po pierwsze nie używasz przerwania int0 tylko portu jako wejścia . Żeby używać int0 jako przerwania powinieneś po pierwsze skonfigurować jakie zdarzenie na int0 ma wywołać przerwanie zmiana stanu , poziom .Zezwolić na obsługę przerwania int0 i odblokować globalnie przerwania . po wystąpieniu zdarzenia nastąpi skok...
Dziękuję za sugestię i wyjaśnienia. Jestem jednak przekonany że problem jest z rejestrem RAMPZ. Wszystko co sugerowałeś sprawdziłem. Dane zawarte w DATA są prawidłowe (sprawdziłem wyświetlanie grafiki korzystając z tych danych między innymi fonty). Program po usunięciu linii z danymi Data - tak aby program nie przekraczał 64KB - działa prawidłowo. Usunięcie...
Cytuję: "Ustawia się to w zależności od skomplikowania programu. (...)" O co tutaj chodzi i o jakie wartości tutaj chodzi? Dokładnie chodzi o ilość bajtów jaką początkowo zajmie każdy ze stosów. Stos jest elementem rozrastającym i kurczącym się dynamicznie. Może dojść do sytuacji gdzie jeden zajdzie na drugi - stack overleap - i kłopot gotowy. Dlatego...
czy tak trudno zerknąć do helpa PWM1A = wartość zmienna = PWM1Aalias rejestru Compare 1A licznika TIMER1 (Word) używany gdy licznik pracuje w trybie PWM PWM1B = wartość zmienna = PWM1Balias rejestru Compare 1B licznika TIMER1 (Word) używany gdy licznik pracuje w trybie PWM PWM2 = wartość zmienna = PWM2rejestr Compare 2 licznika TIMER2...
PCF8583 nie ma rejestru roku tak jak PCF8563. Co do dnia tygodnia - muszę poszukać w DS. EDIT: Dzień tygodnia musisz odczytać z rejestru miesiąca (06). Służą do tego bity 7..5 czyli: 1. odczytać rejestr 06 2. zamaskować wartość za pomocą AND &B11100000 3. przesunąć w prawo o 5 (Shift Rejestr_06 , Right, 5)
Masz jeszcze jedno (chyba najprostsze) rozwiązanie. Widzę że używasz uarta. Zrób sobie pętelkę która będzie zwiększała zmienną , wpisywała ją w rejestr timera, wysyłała ją przez uart, i czekała np 500ms. Patrz kiedy układ będzie miał największy zasięg i spisz sobie wartość timera, lub kilka wartości i średnią wylicz.
Wczytałem sie dokładniej w dokumantację i teraz widzę jakie głupoty popisałem poprzednim razem :-) Mam nadzieję że teraz już załapałem. W TINY13 są dwa rejestry konfiguracyjne do TIMER0: TCCR0A=COM0A1 , COM0A0 , COM0B1 , COM0B0 , - , - , WGM01 , WGM00 TCCR0B=FOC0A , FOC0B , - , - , WGM02 , CS02 , CS01 , CS00 Jak sądzę, żeby CTC działało na wyjściu OC0A...
Witam Bardziej profesjonalnie jest wszystkie układy potraktować jako slave . Każdy słucha i czeka na przerwanie z uarta , jak je otrzymuje odbiera zawartość z udr porównuje i albo odbiera dalej albo ignoruje i czeka na kolejny adres . Atmel wyposażył układy w tryb multimaster ,który się do tego świetnie nadaje i warto o nim przeczytać w dokumentacji...
Dodano po 2 Nie wiem czy ja popełniam błąd czy to Bascom... Choć symuluję to na najnowszej wersji, ale kompiluje na starszej wersji, bo nowa ma ograniczenie do 4kb.
Witam. Chciałbym poznać Wasze propozycje/przemyślenia nt. pewnego problemu. Otóż mierzę sobie długość trwania "0" w przebiegu prostokątnym. Zmierzoną wartość mam przechowywaną w rejesrze 16-itowym. Piszę pod AVR w asm. Przy kwarcu 128 khz jeden takt to 7.8125 us. Zatem, jezeli np. w rejestrze mam wartość FF i przemnożę to przez powyższą stałą, to wtedy...
Mega 8, kwarc 14745600 i transmisja 1200 bez problemu. BAscom ze standardowymi komendami ni ebędzie tego potrafił. I to jest kolejne ograniczenie ale da sie je obejść. W nocie katalogowej do ustalania prędkości są dwa rejestry: (UBRRL i UBRRH). Bascom używa tylko UBRRL (dlatego że dostęp do UBRRH jest bardziej skomplikowany). To znaczy że transmisja...
Chciałbym zrealizować sterowanie diodą led rgb. Atmega8535 ma w sumie 4 kanały PWM Na razie udało mi się wykorzystać tylko jeden kanał pwm z zegara t1. Ale sterowanie dioda rgb nie było dokładnie takie jak chciałem. Ogólnie chciałem zrobić tak aby móc wybrać kolor w standardzie rgb (czyli dla każdego segmentu wartość od 0 do 255). jednak uznałem, że...
Witam ja powiem ze sie da i to bardzo dokłądnie to wykoanć Potrzeba ci jeden Timerek generujacy przerwanie co sekunde. i drugi timerek to wyświetlania w multplesie. Choć faktycznie te dwa timery moga zaburzyć nieco prace tego całego układu. podłacz sobie jeden ls247 i 4 ledy w MPXie zajmie ci to jeden port. 4 linie to BCD i 4 to załącznie pokoleji LEDów....
Kolejny element układanki... łopatologicznie ;) bity CS10 do CS13 określają częstotliwość pracy timera, inaczej mówiąc wyznaczają czas aktualizacji (zwiększenia o jeden rejestru TCNT1). W zależności od trybu pracy rejestr ten jest porównywany z zapisanymi przez użytkownika nastawami w OCR1A (kanał A ), OCR1B (kanał B), OCR1C (dla uproszenia maksymalna...
Witam Jak rozwiązać następujący problem: Robię urządzenie wykonujące jakieś operacje na prostokątnym sygnale wejściowym i przetworzony sygnał wystawiam na jednym z portów. Używam AVR 8515, sygnał wejściowy podaję na oba wejścia przerywające, liczę zbocza, obrabiam w programie sygnał i wyrzucam na port. Sygnał wyjściowy opóźniony jest więc tylko o czas...
SP to rejestr 16 bitowy, podzielony na 2 częsci , młodszy bajt oznaczony SPL i starszy bajt oznaczony SPH. inaczej mozna by zapisać SP jako SP=SPL + 255*SPH SPL=&HDF, oznaca ze młodszy bajt wskaźnika stosu zostanie ustawiony na wartość &hDF, czyli na DF w zapisie hexadecymalnym (szesnastkowym ) Odpowiada to wartosci dziesietnej 223.
jeśli stosujesz procesor at90s8515 i wyżuca ci błąd przy użyciu portu c to zanczy że nie poinformowałeś bascoma jakiego procka posiadasz. wejdz w opcje i tam wybież z listy. Pinc.1=input (Pinc.1=0 - równoznaczny zapis) nie wiem co to znaczy ale chba nie działa configuracja pinów odbywa się przez config portx = input / output lub dla poszczególnych...
Witam. Rozwiązanie jakie proponuje K_O_N_R_A_D jest bardzo ciekawe. Tylko jak zrobić żeby SPI odczytywał dane. Czy należy wpisać wartość 0 do rejestru SPDR i po zakończeniu transmisji odczytać ten rejestr (powinno się w nim znajdować to co zostało odczytane z lini DIN) ? Niestety moje układy sie nie komunikują dlatego sam nie mam możliwości sprawdzenia...
Wszystko działa dobrze, dokładnie tak jak napisałeś :-) Syfy w programie: 3) If A < 250, potem robisz A+10 co daje wartość 260 i przekręcenie się wartości. No bo przecież 8 bit nie może mieć więcej niż 255, a zobacz że ty wpisujesz tam max 260. Popraw na If A < 241 (czemu 241, a nie 240? Bo dając 240 uzyskasz max pwm 240, dając 241 max będzie...
Tryb CTC to tryb pracy timera, w którym przerwanie (od porównania, nie przepełnienia) jest wywoływane na skutek zrównania się wartości timera z rejestrem OCRA timera (jest o tym w dokumentacji do attiny2313). Moje wytknięcie jest raczej przypuszczeniem. Jeśli ów redaktor sprawdził, upewnił się, że wartość do timera jest wpisywana w dopuszczalnym zakresie...
Witam! Potrzebuję działającego modułu do transmisji danych przez ethernet. Z różnych powodów wybrałem nm7010a, tylko .. nie wiem jak się do niego zabrać. Mam za sobą godziny wertowania stron www, mam naściągane pdfy i dalej nie wiem jak ten moduł uruchomić. Potrzebuję prostej instrukcji co do modułu trzeba po załączeniu przesłać i w jaki sposób żeby...
Chciałbym zrealizować sterowanie diodą led rgb. Atmega8535 ma w sumie 4 kanały PWM Na razie udało mi się wykorzystać tylko jeden kanał pwm z zegara t1. Ale sterowanie dioda rgb nie było dokładnie takie jak chciałem. Ogólnie chciałem zrobić tak aby móc wybrać kolor w standardzie rgb (czyli dla każdego segmentu wartość od 0 do 255). jednak uznałem, że...
Próbowałem coś takiego i męczę się cały czas ,ale i tak mi wychodzą głupoty. :( [syntax=basic4gl]Sub Gettime() 'pobieranie czasu z PCF8583 'początek petli I2cstart 'inicjalizacja magistrali I2C I2cwbyte 166 'podanie adresu PCF8583 dla zapisu I2cwbyte 2 'wybranie drugiego rejestru (sekund) I2cstart 'powtórna inicjalizacja magistrali I2C I2cwbyte 167...
Podobno lokalne są trzymane w $frame, no więc powinno się dać dużo więcej zmiennych lokalnych zrobić, a tu taki zonk... Tak, ale też wykorzystany jest softwarowy stos w którym są wskaźniki do tych zmiennych (adresy zmiennych). W Bascom'ie rejestr Y jest wykorzystany jako baza stosu softwarowego. Ograniczenie wynika stąd że do pobierania adresów zmiennych...
Witam Piotrva będę polemizował, cytat z manuala do Bascoma: 1. Zgłoszę to Markowi Albertsowi jako nieścisłość - ten zapis to zaszłość z procesorów 89C... które nie miały FB ani żadnych narzędzi do zegara - wtedy rzeczywiście $crystal oznaczało jaki kwarc jest podpięty do procesora fizycznie. Obecnie zaś, w wersji AVR nie z teorii, ale z PRAKTYKI wiem,...
Nie ma standardowych wartości, ile sobie założysz, tyle masz. Nie ma też czegoś takiego jak standardowy VCO, parametry dobiera się stosownie do potrzeb. Jest wiele rozwiązań, niektóre pracują z częstotliwościami poniżej 1Hz, a inne z częstotliwościami kilkudziesięciu i więcej GHz. To samo dotyczy zakresu napięcia wejściowego, ale najczęściej mieści...
Niestety nadal w programie jest błąd. Ta moja wersja z krótszym buforem też się zawiesza. Jak bufor był krótszy i zaczynał się od 0 i szedł do 31 to zawieszanie następowało tak jak normalnie. U mnie po 67 sekundach. Czyli ta BASCOMowa zmienna siedzi gdzieś na początku bufora. Przesunąłem wykorzystywaną cześć bufora do indexów 128…159 i zawieszanie...
Czy jest możliwość obsłużenia tego w Bascomie? Funkcja GETADC() Przeznaczenie: Pobiera wynik przetwarzania z wbudowanego przetwornika ADC na wybranym kanale. Składnia: zmienna = GETADC( nr_kanału , offset ] ) gdzie: zmienna - zmienna typu Word do której wpisana będzie przetworzona wartość, nr_kanału - numer kanału przetwornika ADC. Zwykle z zakresu...
Znalazłem kod tablicy świetlnej, 8x8 sterowanej przez rejestr 74164, niestetypo załadowaniu programu na tablicy świecą się tylko trzy kolumny diód :(. Czy ktoś mi pomorze to rozgryść? 'Program tablicy świetlnej 'Sterowania multipleksowe wyświetlaczem matrycowym 7x5 LED 'Częstotliwość sterowania kolumn wyświetlacza wynosi ok. 333 Hz 'czyli częstotliwość...
Przepraszam za taką formę ale nie mogłem skopiować błędów. np; w końcowej części kodu napisałem Lcd tempu to znaczy że na wyświetlaczu pojawi się wartość zmiennej Tempu czy trzeba to zrealizować w inny sposób? 1. Zechcesz skopiowac tylko tabelkę błędów: -klikasz myszką w dowolnym miejsc na górny bar tabelki z napisem 'Errors', a następnie "Alt + print...
Przeznaczenie: Konfiguruje pracę programowego interfejsu I2C jako urządzenia podrzędnego (Slave). Ta instrukcja korzysta z biblioteki I2CSLAVE.LIB, która jest rozprowadzana oddzielnie przez MCS Electronics. Składnia: CONFIG I2CSLAVE = adres 'Instrukcja Config I2cslave automatycznie włącza globalny system przerwań! Config I2cslave = &B01000000 'czyli...
Wystarczy przykład 16F628 i 16F628A czy kolega może nam opowiedzieć o różnicach w budowie tych procków? i dlaczego "A" jest tańszy? kolego... zadałem to pytanie ponieważ komega gummis jeszcze dwa miesiące temu ( poszukajcie sobie na forum ) nie wiedział, że w pic jest rejestr ADCON1 a teraz zrobił się lepszy znawca niż moi znajomi w Gammie, która wam...
tak - takimi programikami można sprawdzić, i wartość należy zawsze wpisać do rejestru przy starcie każdego programu. To jest rejestr w pamięci RAM a nie EEPROM. Nie jest to też Fusebit. Dodano po 2 ale wiesz co? ja bym na twoim miejscu sprawdził ten procek z kwarcem = 8MHz czy przypadkiem się nie okaże że jednak też nie działają wyższe prędkości. Może...
W instrukcji CONFIG SERVOS jest taki parametr jak RELOAD = xxx. Liczba xxx określa jaki czas w us będzie pomiędzy kolejnymi przerwaniami licznika taktującego generator PWM dla układów serwa. I będzie to rozdzielczość tego układu. Zatem jeśli wpiszesz 10 to SERVOS(1) = 100 da nam 100x10us = 1ms impuls powtarzający się co 20ms na wyjściu podłączonym do...
Zamaskować nieużywane bity rejestrów przechowujących czas. Nie możesz zakładać, że one mają wartość 0 - w praktyce mają wartość losową.
No to spróbuj - zmienną wysyłasz jak normalną wartość, w Bascom ustawienie bitów w niej będzie się odbywało tak samo jak majstrowanie z rejestrami PORTn.x.
Należy: - zadeklarować zmienną globalną np. LICZNIK i nadać jej wartość zera, - włączyć przerwania od przepełnienia Timer0, - w funkcji przerwania należy zwiększać wartość zmiennej LICZNIK o jeden Aby poznać liczbę impulsów wystarczy pomnożyć LICZNIK*256 i dodać do niego aktualną wartość rejestru licznika timera, czyli jak sądzę counter0 (nie znam BASCOM).
Witam W tym rejestrze tylko dwa bity dadzą się zmienić i przy okazji odpowiadają one za rozdzielczość więc wpisanie do rejestru wartości 63 dzisiętnie lub 3F hexadecymalnie załatwia sprawę. -- pozdrawiam
Tryb CTC należy ustawić zgodnie ze stroną 112 PDF. Należy dokładnie przeczytać tę stronę i okoliczne. Potem ustawić odpowiednie bity w odpowiednich rejestrach. W Bascomie robi się to np. tak: set TCCR1B.wgm13 i tak dalej. Bascom nie ma gotowych instrukcji na wszystkie możliwe tryby pracy timerów. Ale pozwala na ustawienie tych trybów "ręcznie"- przez...
Powtórna inicjalizacja (sygnał START) wymagany jest tylko w momencie w którym Master zapisuje do układu adres rejestru z którego następnie chce odczytać wartość (FIG. 17 z dokumentacji). W przykładzie z pierwszego postu powtórna inicjalizacja podyktowana była "cechą" układów na I2C - automatyczna inkrementacja licznika rejestru. Jeśli wpisujesz wartość...
To tylko opóźnienie. DJNZ zmniejsza zawartość rejestru R7 i skacze do etykiety Et1, aż wartość tego rejestru będzie równa zero. W bascomie można użyć instrukcji waitus 40 w tym przypadku będziesz miał opóźnienie 40 us
bascom rejestr rejestr przesuwny bascom bascom rejestr przesuwny
lodówki bosch opinie odgłos słychać pilot uniwersalny cyfra
projektor rzutnik spawarka dedra schemat
Sonra Erfurt 2 Super 8118 GWU-3D – schemat, różnice wersji, naprawa, modernizacje Vaillant atmotec plus - błąd F.28, przekreślona ikona płomyka