No, ok. Więc musi zatrzymać transmisję, podać ponownie adres rejestru który zamierzasz odczytać i go odczytać. Czyli robisz tak samo, jak podczas odczytu godziny ale nie podajesz adresu rejestru sekund, a adres rejestru z którego chcesz odczytywać swoje dane. A swoją drogą, to przecież takie porównanie możesz wykonać w programie procesora.
Nie słyszałem o takiej możliwości, ale... człowiek uczy się całe życie.
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ść...
Raczej tylko w rejestrach
Dlaczego? Czy jednak ATMega48 jest uboszszy od ATMega88 nie tylko pod względem mniejszej pamięci? Pomijając już ograniczenia BASCOM-a w starszych wersjach, to sprzętowo połowa rejestrów MEGA88/48/168 znajduje się w innej przestrzeni adresowej. Dlatego dostęp do nich nie jest możliwy przez klasyczne IN / OUT. Również DEMO w wersji 1.11.8.7 pokazuje...
generator wewnętrzny jest bardzo niestabilny, mocno zależy od temperatury. Daj kwarca albo skoryguj wewnętrzny oscylator rejestrem OSCAL.
wszystko to co napisal nsvinc zrob w AVRze ;]
Czyli ty nie chcesz skanować klawiatury a zrobić sterownik tej klawiatury ze jak wciśniesz cos tam to się na LCD pojawi jakiś text tak ?? Jeśli tak to sprawa jest banalna. Masz załóżmy KB 4x4 PortX.0 do portX.3 wyjścia PortX .4 do PortX.7 wejścia (rejestry pin). I np. dim klawisz as byte set portX.0 reset portX.1 reset portX.2 reset portX.3 If PinX.4=1...
Dzisiaj akurat potrzebowałem rejestru HC595 do rozszerzenia liczby wyjść użytecznych. Poniżej fragment kodu w bascomie. Przypisane nazwy odpowiadają katalogowym. Zmienną Portx traktujemy jak zwykły 8 bitowy port wyjściowy. Kod z pod etykiety 'obsługa rejestru' wstawiamy w pętli głównej programu, aby rejestr był na bieżąco odświeżany. [syntax=basic4gl]...
Timer 0 w atmedze8 nie ma pwm. Powinieneś użyć Timera 2, czyli rejestrów TCCR2 i OCR2.
te rejestry (Fuse Bity) ustawia sie przy programowaniu programu a nie w sofcie. wbudowany programator bascoma ma taką opcje jak właczysz okno programowania to w zakładce "lock and fuse bits"
do sprawdzania stanu portu służy rejestr PIN
Przykładowo z innego kodu ;) [syntax=vbnet]TCCR1B = Bits(WGM13 , WGM12 , CS10)[/syntax] Miłego dnia
No tak dwa bity z lewej to rok dalsze 2 to 10 dni i ostatnie 4 to dzień zrobiłem taki program Zapisuje na starcie godzinę 23:59:58 i datę 31-12 dzień wpisuję tak &B00110001 , daję mi to 31 dzień miesiąca , kiedy przechodzi data na 1-01 to zmienną dnia wyświetla mi tak &B00000001 ale bity roku nie uległy zmianie. Jak do tego nie dojdę chyba zmienię...
W bascomie można tak: 'zmienna_long = (zmienna_byte & 3) << 10; Zlong = Zbyte And 3 Shift Zlong , Left , 10 'zmienna_long |= (zmienna_byte <<2) & 3; // ???????? Shift Zbyte , Left , 2 Zbyte = Zbyte And 3 Zlong = Zlong Or Zbyte Pozdrawiam Piotrek
W BASCOMie możesz używać wszystkich rejestrów od R16 do R25 bo BASCOM nic w nich nie trzyma (od R0 do R12 w sumie też ale na nich nie działa rozkaz ANDI). Pozostałe to nie wiadomo. Czasami jakiś wskaźnik może się tam znaleźć więc trzeba uważać.
Potrzebuje zrobić obsługe tego układu w bascomie. kompletnie nie wiem, jak go adresować, jestem początkujący, a notka niewiele mi mówi... Pozdrawiam To poczytaj właściwą notkę http://www.e-lab.de/downloads/DOCs/RTC85... Piotrek
Bascom operuje bezpośrednio na rejestrach. Poczytaj DS co i gdzie trzeba poustawiać, a potem czytaj wynik też prosto z rejestrów. Nie używaj getadc. To polecenie działa tylko w trybie single i o ile wiem wykonuje konwersję zawsze dwa razy zwracając wynik drugiego pomiaru. Wtedy o szybkości max nie ma co mówić.
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.
Mając trochę wolnego czasu napisałem parę funkcji do obsługi układu PCF8583. Funkcja która ustawia godzinę i datę zapisuje też dane potrzebne do obliczenia pełnego roku, dzień tygodnia jest obliczany automatycznie na podstawie daty. Funkcje Pcf8583_write i Pcf8583_read można wykorzystać do zapisywania/odczytywania danych z wolnej pamięci ram. Dostępne...
Nie wiem jak działa to w Bascomie. Tak działają rejestry w assemblerze. Staram się nie mieszać, ale wydaje mi się że jak zrozumiesz dokładnie do czego jest który rejestr to łatwiej Ci będzie to rozgryźć. Lepiej wiedzieć co do czego i po co.
Spokojnie- dobrze kombinujesz. Bity w rejestrach w Bascomie ustawiasz pojedynczo. Tak że Set Tccr1a.cs00- jest ustawiony bit cs00. A jak ustawisz Set Tccr1b.7 - to masz 00000111 w tym rejestrze. Sprawdź jak jest on ustawiony wtedy.( tu głupoty napisałem- jak sprawdził Atom) Ustawisz siódmy bit. Dodano po 3 " i tylko czekasz na gotowca." Nie- to jest...
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).
Kolego, układy AVR mają nogę podłączoną do kilku rejestów. Pisząc słowo PIN konfigurujemy rejestry wejściowe, a słowo PORT rejestry wyjściowe. Chodzi tu o składnie języka Bascom.
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...
Sekunda.0 to najmłodszy bit bajtu sekunda, taki dostęp do pojedynczych bitów bajtu pojawił się dopiero w jednej z wersji bascoma, stąd nie działa we wcześniejszych. Działa to dokładnie jak w przypadku odwoływania się do pinów portu - piszesz portd.1 - kiedy chodzi o drugi (po pierwszym - zerowym) bit bajtu Portd, w odpowiednim rejestrze
Po co na rejestrach? W Bascomie nie trzeba operować na rejestrach. Od tego są mnemoniki konfiguracyjne. R
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...
O ile się orientuję, to przebieg 1Hz może być na wyjściu CLKOUT. W rejestrze 0D musi być 0x83, ale nie mam pojęcia jak to zrobić w Bascomie.
No,ale nie podałeś jaki procesor. W Bascomie można ustawić rejestry Timera "ręcznie"- a nie przez config. Zamiast czegoś takiego: "TCCR1A = &H00 'See datasheet for details "TCCR1B = &H0C 'See datasheet for details można ustawić to po "bascomowemu"- patrząc w DS. set TCCR1A.cs12 set TCCR1A.wgm12 Itp. Zamiast config ustawiasz poszczególne bity w rejestrach...
Podam Ci linki do rozwiązania ale może to nie w Bacom a w C ale mogło by Cie nakierować. Na pewno na poprawność podłączenia i ewentualnej kompilacji tak żeby sobie tylko przetestować działanie rejestru. W filmie tam masz opowiedziane o tym rejestrze z notą jak i samą komunikacje z SPI, w Bascomie zapewne będzie analogicznie. Myślę że warto to zobaczyć...
A o nazwę PWM0A się BASCOM nie "rzucał"? Spróbuj wpisywać bezpośrednio do rejestru OCR0A. I usuń te polecenia Start gdyż są bez sensu. W wersji 1.11.9.5 rezultat kompilacji wydaje się być poprawny. Rejestry ustawiane są prawidłowo. W domu znajdę jakiegoś Tiny i sprawdzę.
Hej! Masz rację - ztym kontrolerem (lub Bascomem) jest coś nie tak, ponieważ próbowałem zrobić na nim prosty sterownik z użyciem IR "Get RC5", i niestety bascom wywala error, że niemożliwe w tym chipie najpewniej błąd Timera (nie pamiętam 0 czy 1). Tak zechyba nie robisz błędu, tylko w Bascomie w stosunku do tego procka jest coś spaprane.
Czyżby nikt na elektrodzie nie potrafił mi pomóc?? ;) W końcu uruchomiłem ten program ( w zasadzie napisałem go od początku). Niestety znowu mam problem. Program zapisuje (chyba) poprawnie rejestr konfiguracyjny 0x0a (dioda myszki nie przechodzi w stan uśpienia). Ponadto poprawnie odczytuje zawartość rejestru najjaśniejszego pixela 0x07 i średniej wartości...
Na pewno dla rozkazu mov P1, #FFh brakuje Ci 0 przed FF czyli poprawnie: mov P1,#0FFh.
Jak najbardziej w arduino można operować bezpośrednio na rejestrach tylko trzeba brać pod uwagę skutki tego rozwiązania... Jak ktoś zada sobie trud podejrzeć co kryje się za digitalWrite() to będzie wiedzieć o co chodzi. Niemniej PORTD/PIND/DDRD są jak najbardziej dostępne w Arduino co w niektórych przypadkach może być wygodniejsze przy przesiadce z...
W załączeniu pdf z opisem pcf-a po polsku. Masz tam opisane jakie rejestry należy ustawiać.
stary, weź sobie zapodaj jakiś kurs(k) Bascoma. bylo tego od groma w EdW, albo poszukaj sobie gdzieś w sieci, na pewno ktoś gdzieś kiedyś robil coś z rejestrami w Basicu. poza tym podobno Bascom ma helpa.
W sumie tak, możesz wzorować się na bibliotekach z c i przepisać je na Bascom z obsługa przez rejestr 74hc595
LM317 + sterowanie rejestrem przesuwnym 74164, 74HC595 lub portem I2C PCF8574.
Dim Czas as Word Czas = 850 do Set PortC.1 Wait Czas Reset PortC.1 Wait Czas loop Pozdrawiam P.S. Poczytaj do czego służy Alias. Nadaj alternatywne nazwy rejestrom a nie poleceniom języka.
Te procesory się aż tak nie różnią. Dodatkowe funkcjonalności pinów nie przeszkadzają w niczym dopóki ich nie uruchomisz. (PCINT - Pin Change Interrupt trzeba wiedzieć jak włączyć). Jest duża różnica jeśli chodzi o Timery właśnie. Mega8 ma na przykład tylko jeden rejestr Compare dla Timer2 dlatego inaczej się nazywają. Opisałem to u siebie na stronie...
A nie lepiej tak ? Przykładowa konfiguracja timera1 w trybie CTC i przebiegiem na OC1a [syntax=basic4gl]Config Timer1 = timer, Prescale = 256, CLEAR TIMER = 1, Compare A = toggle, Compare B = disconnect [/syntax] Potem tylko zmieniać wartość rejestru Compare1a jakimiś przyciskami, pilotem, enkoderem etc. ps. Jak nie zadziała to poustawiać bity w rejestrach...
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
Tylko że to ci nie wyczyści wszystkich rejestrów.
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.
Witam, mam problem z kompilacją kodu sprzed 10-ciu lat, najnowszy bascom. problem jest z rejestrami: Ocr0b = &H80 Ocr0a = &H80 proszę o wskazanie przyczyny. [code][syntax=vbnet] $projecttime = 0 $regfile = "m32def.dat" $crystal = 16000000 ' gdy Baro_idle=0 nie widzi adresu 238 ($EE) ' gdy Baro_idle=1 widzi adres 238 ($EE) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!....
Balu nie wiem co to ddr DDRx jest to rejestr, który służy do określenia kierunku transmisji portu. Input lub Output.
.Czy ktoś może wie w czym tkwi problem/spotkał się z taką sytuacją? A zmienna, której wartość kopiujesz do OCR3A/PWM3A nie jest przypadkiem zadeklarowana jako BYTE ? Jeżeli to nie to, to spróbuj zapisywać rejestry OCR3 osobno - OCR3AH, OCR3AL.
Witam, to jednak nie wygląda dziwnie ... bo najprawdopodobniej pomimo to, że użyłeś zwenętrznego kwarca do procka to nie przestawiłeś fusebitów tak aby to on taktował procka. W związku z tym procek taktowany jest chyba tak jak fabrycznie ustawione są fusebity - czyli za pomocą oscylatora wewnętrznego o częstotliwości 1MHz. I dlatego masz ten jak piszesz...
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
A co to znaczy nie działa? Może BASCOM ten bit ustawia automatycznie dla większych prędkości UARTa. Zobacz w podglądzie rejestrów w symulacji.
Niestety bascom to czasem zgadywanka. On powinien operować na zmiennych a nie na rejestrach
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....
Zajrzałem do skompilowanego pliku i widzę że kompilator w ogóle nie używa tu R2 i R3 więc mi je zostawił ;) Od pewnego czasu w Bascom do rejestrów można się odwoływać prosto z kodu. Ciekawe którą wersję Bascom masz. Pewnie znowu schody... U mnie program się kompiluje na 96% [syntax=vbnet] $regfile = "attiny13.dat" $crystal = 9600000 $hwstack = 16 $swstack...
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 $regfile = "Attiny26.dat" $crystal = 1000000 Config Timer1 = Timer , Prescale = 64 On Ovf1 Czas Enable Interrupts Enable Timer1 Counter1 = 120 Do nop Loop Czas: nop Return...
Do odczytu stanu portu służy rejestr PIN. Czyli masz źle zrealizowane warunki w funkcji przerwania.
Poczytałem trochę więcej i już wiem. Temat zamykam
Moim zdaniem błąd leży w procedurze Bascoma "Config Timer0 = Pwm" - nie wiadomo jak Bascom ustawia poszczególne rejestry. Można by było poustawiać rejestry ręcznie i sprawdzić co się dzieje.
Witam Czy w bascomie jest obsługa 3-go pwma chodzi mi o pwm oc1.Czy trzeba bezpośrednio na rejestrach działac. Dziękuj za informację i pozdrawiam
Próbowałeś "ręcznie" napisać obsługę tych przerwań? Czasami trzeba troszkę wyręczyć bascoma. Odpowiedni wpis w rejestrach PCICR i PCMSK0 powinien załatwić sprawę ;)
Wydaje się ok. Celem programu jest sterowanie wyświetlaniem jednego (lub dwóch obok siebie) segmentów wyświetlacza BAR LED jako cyfrowej skali częstotliwości do tunera 88-108. Stąd, pozycja na "skali" zależy od zmiennej (powiązanej z odbieraną częstotliwością). Kierunek "przesuwania" jest jeden, bo i tak po zmianie częstotliwości przeładowane zostaną...
No dobra. Ale co to jest ? Bo nic nie rozumiem. Po co tak wachlujesz tymi zmiennymi ?
Przekaznik Alias Pinc.5 powinno być alias portc.5;) Tutaj mamy 3 rejestry do obsługi portu, nie jak w 51 1;P
Str. 100 i 101. Rejestr TCCR0, bity COM00 i COM01.
W procedurze przerwania wymagane jest zapamiętanie rejestrów, które są współdzielone w pętli głównej (przy użyciu komendy "push"), a następnie odtworzenie początkowego stanu zasobów (przy użyciu procedury "pop"). Ale o które rejestry dokładnie chodzi? Których rejestrów dotyczy warunek poprawnego wykonania procedury przerwania i w jakich sytuacjach?...
Witam!!! Posiadam uC AT89S52 w projekcie na zaliczenie i chcę program pisać w Bascom'ie. Problem z tym, że w ustawieniach Compiler -> Misc -> Register File nie ma żadnego pliku odpowiadającego AT89S52. Który plik z podanych w programie mam wybrać, albo gdzie mogę znaleźć plik z ustawieniami rejestrów do Bascom'a od AT89S52??? Posiadam BASCOM-8051 IDE...
W rejetrze GIFR pojawia się flaga żądania obsługi przerwania INTF0. I czeka. Gdy w rejestrze GICR pojawi się ponownie flaga INT0 (czyli w Bascomie enable INT0) przerwanie jest obsłużone i flaga INTF0 jest wtedy kasowana. Flaga INTF0 może byś skasowana ręcznie.
"Tą" liczbę masz zapisaną w zmiennej Liczba_przerwan_tim0 a nie w ośmiobitowym (czego się chyba obawiałeś) rejestrze timera0 - więc nie ma problemu.
GPIOB->BSRR=0b00000000000000000000000... //ustawi 1 na PB.0 bez zmiany pozostałych pinów? GPIOB->BSRR=0b00000000000000010000000... //wpisze 0 na PB.0 bez zmiany pozostałych pinów? Jednak wolę Bascom niż zabawę w liczenie 32 bitów To nie Bascom, nic nie trzeba liczyć. Piny mają zdefiniowane nazwy symboliczne np. w odniesieniu do...
program pisałem z Polską wersją pomocy tam nic o ctc nie pisze ale poczytam. Może Bascom nie obsługuje tego, choć wątpię, bo CTC to "popularny" sposób obsługi timera. Jeśli nawet Bascom nie obsłuży CTC to można to zrobić pisząc bezpośrednio do rejestrów.
Zobacz jak dziala kod na jakims debuggerze - masz JTAG? Albo w AVR Studio (nie wiem czy Bascom ma odpowiednik). Sprawdz czy prawidlowo sa ustawiane rejestry odpowiedzialne za wspolprace z XRAM. Moze to jakis blad Bascoma? Swoja droga przy tak duzym procesorze chyba juz warto przejsc na profesjonalne narzedzia? :)
Zamaskować nieużywane bity rejestrów przechowujących czas. Nie możesz zakładać, że one mają wartość 0 - w praktyce mają wartość losową.
Sprawdź w symulacji co się dzieje z rejestrem TCCR1B (a szczególnie z bitami CS10 - 12) po komendzie "timer1 = 0".
Witam A można prosić o kod w bascomie?? Pozdrawiam
DDR to nie instrukcja tylko rejestr portów np. DDRB - rejestr określający kierunek portu PortB (wejście czy wyjście). W bascomie konfigurujesz np. Config portb.5=output lub np. config portb=input Po szczegóły odsyłam do dokumentacji procesora i języka Bascom.
Aha - w opisie zapomniałem podać, że oczywiście trzeba też ustawić częstotliwość nadawania/odbierania wpisując odpowiednią wartość do rejestru A680h.
Temat już trochę przeterminowany ale, BASCOM 51 ma wsparcie do 80c535, jest w nim plik definicji rejestrów 80535.DAT więc nie powinno być z tym problemu w tym kompilatorze Tu trochę info odnośnie 80c535 w PL http://www.imne.pwr.wroc.pl/zne/laborato... pozdr KN
A jest $regfile "m8515.dat" ? Zresztą może Bascom nie chce rejestru w if. Może tak: Dim moja _flaga as bit moja _flaga= ADCSRA.FE if moja_flaga=0 then
A czy dodałeś plik definicji rejestrów dla procka którego używasz? $regfile = "m8535.dat" dla atmega8535 (nie wiem jakiego proca używasz)
To pozostaje tylko skonfigurować rejestry...
No rejestrami tak. Ja miałem na myśli BASCOMowe polecenie konfiguracyjne.
Nie wiem konkretnie o co Ci chodzi, ale pewnie rozwiązaniem było by zastosowanie odbioru w przerwaniu co w bascomie jest niezwykle łatwe za pomocą BYTEMATCH. Mam wersje 1.11.9.0 i wspomnianego BYTEMATCH nie ma. Od ktorej wersji bascoma jest w/w funkcja? Zawsze byłem za tym, by najmniej korzystac z gotowych funkcji, a korzystac bezposrednio z rejestrów...
I właśnie do tych asmowych wstawek trzeba znać asma:) PS twój kod się nie skompiluje;) instrukcje immediate nie działają na młodszych 16 rejestrach:)
To nie jest podstawowy język procesora. To po prostu adresy rejestrów.
W starszych AVR'ach wystarczyło wyłączyć na moment nadajnik/odbiornik UART'u (rejestr UCSRB, lub UCSR0B, UCSR1B, itd.) i włączyć ponownie - może tu też zadziała.
Nie. To działa i na portach (ogólnie rejestrach IO).
ale po co ci zerować ten rejestr skoro nie używasz uarta? mega 16 nie posiada takiego rejestru.
Ten plik jest troszkę mało zrozumiały, czy program robi go autoamtycznie... Jeśli zerkniesz do datasheet'u 812 i porównasz go z plikiem .def to zrozumiesz co jest w środku: adresy rejestrów, ilość pamięci etc. Musisz to sobie pozmieniać/wpisać w notatniku...
Prosty program zmieniający z częstotliwością 0,5Hz stan końcówki PXY raz jako zwarcie z masą (logiczne zero) wmuszone stanem rejestru PORTX.Y, a po sekundzie wystawiający na końcówkę PXY wysoką impedancję. Fakt, jedynką ustawiasz masę, a zerem ustawiasz wysoką impedancję. Z tym chyba sobie poradzisz. [syntax=basic4gl]PORTX.Y = 0 'Wartość rejestru PORTX.Y...
Bascom jeszcze nie obsługuje PWM w Timer0 z poziomu CONFIG. Trzeba skonfigurować "ręcznie" przez bezpośrednią modyfikację rejestrów sterujących licznika. :(
Ok znalazłem odpowiedź . Wcześniej używałem MPU-6050 i przeszedłem na MPU-9250 bo chciałem użyć magnetometr i właśnie tu zaczęły się schody. Nie mogłem się dobrać do magnetometru , cuda wianki robiłem z rejestrami i nic. Mogłem od razu sprawdzić rejestr WHO_AM_I . W oryginale = 0x71 a tu dostaję = 0x70 ... Chciało się tanio MPU9250 to się dostało akcelerometr+żyroskop...
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).
W RAMie też nie można adresować pojedyńczych bitów. Rozbijaniem na bity zajmuje się BASCOM a robi to już w rejestrach a nie w RAMie.
No ok rozumiem pomysł, powinno zadziałać samo przesuwanie. Wystarczy 7 bajtów (7x8=56) Jak zapewnić sobie w Bascomie te 7 rejestrów na wyłączność? Tzn jak sprawić żeby we wstawce asm. nie skasować czasem jakiejś bascomowej zmiennej? A jeśli sie nie da w rejestrach, to do których komórek pamięci zapisywać skladowe bajty rejestru żeby nie nadpisać jakiejś...
W trybie power down są zachowywane rejestry procka. Niech WDT budzi procka co 2 sekundy i zwiększa wartość wybranego/wybranych rejestrów.
Bascom moze tego nie obslugiwac. I ile recznie mozna wpisac do rejestru wlaczenie tego przerwania, to podanie wektora przerwania pewnie bedzie juz problemem - moze edycja pliku z danymi o ukontrolerze. Przerwania zmiany stanu na PCINT przypisane sa do portów, i dodatkowo mozna zdefiniowac które piny maja byc monitorowane (nie musza byc wszystkie).
A nikt nie zauważył, że kol. Kuniarz chce "przepuścić" prąd z 40-tu LED-ek, przez 1 pin uC :?: Poza tym, diody na schemacie, są niewłaściwie "skierowane" ;) Propozycję mam taką: 1)Rezystory ograniczające prąd LED-ek , umieścić w kolumnach 2)Na wiersze dać jakieś drivery, co potrafią "uciągnąć" z kilka A To tyle :-P
Rok i dzień tygodnia odczytujesz analogicznie do dnia miesiąca. Wystarczy tylko zmienić numer rejestru PCF przy odczycie i zamaskować niewykorzystywane bity.
Dla Mastera instrukcja :"Config Portb.2 = Input" jest błędna. Powinno być Config Portb.2 = Output. Generalnie to jeśli chcesz coś wysłać ze Slave do Master to musisz uruchomić Mastera. Dlaczego? Bo to on taktuje magistralę. Musisz więc wymyślić sposób na poinformowanie Mastera, że Slave coś przygotował do odczytania. W Slave wystarczy to co chcesz wysłać...
bascom rejestr przesuwny wartość rejestr bascom rejestr przesuwny bascom
scalanie komórek wymiennika kondensacyjnego tech2 naprawa
beninca schemat firmware flash
Stacja bramowa HIKvision rozłącza się ze stacją domową - przyczyny i rozwiązania Resetowanie żółtej diody TPS w Hilti TE 56 ATC