Witam Mam pytanie, jak można w bascomie odczytać stan konkretnego bitu z konkretnego rejestru. Dokładnie chodzi mi o odczytanie stanu 4 bitu w rejestrze R6 w Attiny 13. Podłączyłem do niego klawiaturę AT i potrzebuje wiedzieć jaką wartość ma ten bit gdyż jest on używany jako flaga stanu klawisza shift....
Czy sprawa jest warta zachodu jeśli mogę sobie zmienić schemat na taki, gdzie wszystkie piny wyświetlacza będą na jednym rejestrze? Zależy w czym czujesz się lepiej, czy wolisz zmienić software czy schemat. Sposób numer 1 (napisane w semijęzyku) dla lepszego zobrazowania - pobierasz wartość...
Witam! Program działa poprawnie. Testowałem z 3-4 programy do obsługi tego czujnika ciśnienia. Wyniki są złe, porównaniem z innym ciśnieniomierzem zaniża o 30..40hPa. Zasilanie BMP180 3.3V, ATMEGA32, 8MHz. Czy ktoś się spotkał z takim problemem? [syntax=vbnet] '---...
Witam, Piszę na Atmedze odczyt danych z BMP085 i dodatkowo zapis danych na kartę SD. Wszystko wydaje się działać poprawnie, a jednak coś jest nie tak. Do obsługi BMP085 wykorzystałem kod z tego tematu: Oto wykres z odebranych danych, czas pomiaru to około 10min Za każdym razem ćiśnienie...
Jak w temacie zaczynam swoją przygodę z bascomem i napotkałem pierwszy problem. Chciałbym na wyświetlaczu led wyświetlić zawartość rejestru eedr który będzie zwiększany z każdym naciśnięciem przycisku. Wszystko chodzi ok dopóki nie użyję polecenia lookup. Dopóki licznik liczy po swojemu i wartość EEDR...
Naprawdę nikt nie jest w stanie nic pomoc ? Miało by to mniej więcej wyglądać tak: -sygnał podawany na ICP ma postać kwadratową -zbocze opadające powoduje zapis wartości timera do rejestru sprzętowego -odejmując kolejne wartości rejestru od siebie uzyskuję czas jaki upłynął między impulsami -obliczając...
Mnie się wydaje, że nie do końca wiesz o co tu chodzi więc napiszę kolejny raz. W AVR'ach każdy port (końcówka) ma trzy rejestry: DDRx(.y), PORTx(.y ) i PINx(.y). W rejestrze DDR ustalamy kierunek - 0 = wejście, 1 = wyjście. Jeżeli port jest wyjściem to PORTx(.y) ustala stan wyjściowy a PINx(.y)...
A może znasz jakiś jeszcze inny sposób (PROSTY) żeby jak najszybciej sprawdzić zmianę stanu na 18 wejściach do uC? Najprościej byłoby zastosowac inny processor np: ATMega48/88/168, które mają PCINT co najmnjej na 20 'użytecznych' pinach wejściowych. W subrutynie do każdego PCINT wstawisz...
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...
A jeśli się mylę bo to oznacza 1 sekundę - to jest OK. To spróbuj puścić program w symulatorze w środowisku sprawdzając czy bit 0 rejestru PORTB się zmienia. Jeśli by się zmieniał to znaczy że coś jest nie halo w sprzęcie - może zimny lut albo brak kontaktu na połączeniu procek-dioda-rezystor-potencjał....
Witam wszystkich Dopiero zaczynam programować w języku asemblera (w szkole mam programowanie mikrokontrolerów 8051 w tym języku), wcześniej programowałem w Bascomie. Chcą trochę poćwiczyć asemblera przed zaliczeniem napisałem prosty program który wpisuje do pamięci o danym adresie i do jakiegoś rejestru...
Witam. Złożyłem prototypową płytkę z akcelerometrem MMA8543Q, atmega8, wyświetlacz. Atmega i LCD zasilane 5V, akcelerometr 3,3V. Konwersja poziomów I2C oczywiście jest. Datasheet akcelerometru dostępny I2C w atmedze programowe. Komunikacja pomiędzy µC a akcelerometrem sprawna. Sprawdziłem...
Zrobiłem tak jak poradziłeś i oba programy działają :) Dim Licz As Byte Eedr = 0 'na początek w liczniku zero Do Debounce Pind.0 , 0 , Zwieksz , Sub 'naciśnięcie S1 Licz = Eedr 'przepisz dane z rejestru do zmiennej ...
Może tak: zdefiniuj kilka takich programowych timerów (tyle, ile przewidujesz wyjść) np. co 1 sekundę sprawdzaj stan tych rejestrów każdego po kolei jeżeli któryś z nich ma wartość większą od zera to na odpowiadające mu wyjście wystaw stan włączający podłączone urządzenie (tu diody LED) i zmniejsz...
Ramka ma składanie Xx xx - nagłówek (konkretny sterownik) AA BB - adres (w sterownikach powtarza się) CC DD- długość,komenda ( pozostała ilość danych w ramce zapis-odczyt wartość rejestru...) EE FF. - wartość GG HH - wartość Czasami ramka ma długość 6 czasami 10. Odbiór w założeniu działa...
Pomijając fakt, że sam pomysł jest dziwny ... to powinno to działać tak jak planujesz. Kierunek portu (wartość rejestru ddr) możesz zmienić w dowolnym miejscu programu, nie tylko w deklaracji na początku. Czyli na początku programu deklarujesz pinb.1 jako wejście, zerujesz pinb.1 (reset). W programie...
Witam. W podprogramie do zapisu zegarka nie określiłeś zmiennej Tm(5). Wprawdzie nie używasz jej ale jest zapisywania zgodnie z pętlą. System wstawia wartość domyślną co zakłóca wartości rejestrów zegarka. Wstaw : Tm(5) = 1
1. Zmienna jest typu word bo żeby przy aktualnych ustawieniach zmierzyć ~750ms trzeba zliczyć 2900 przerwań. Poza tym obsługa tej zmiennej jest poza obszarem wyłączenia przerwań i i tak zajmuje parę taktów uC. 2. Nie po to używamy timera żeby jego zadania wlepiać do pętli głównej 3. Load Timer0 może...
Właśnie właśnie. Ten pomysł z kimś innym do sprawdzania mi się podoba :) Ja już wymieniłem w sumie wszystkie części (procek, max, kwarc, kabelek -dłuższy, krótszy, kompa, prędkości, program, INPUT, INKEY) i zawsze to samo. albo działa "inaczej" albo wcale. W moim układzie też zauważyłem że 2 kondensatorki...
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.
Dzień dobry ! Szanowni Elektronicy i Programiści, mam do Państwa pytanie o możliwość generowania przez mikrokontroler dwóch sygnałów ściśle ze sobą zsynchronizowanych z małymi opóźnieniami jak na rysunku poniżej: Sygnały te będą sterować tranzystory IGBT dużej mocy w falowniku. Do tej pory generowałem...
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...
Instrukcja Wait nie stopuje procesora. Procesor odlicza czas poprzez zmianę wartości rejestrów a więc działa. A skoro działa to powinien także odczytać informację, że nastąpiła sygnalizacja od przepełnienia Timera. Spróbuj zastosować tą instrukcję. Tylko nie wywołuj jej w obsłudze przerwania a w pętli...
Wartość rejestru CKSEL wynosi 0011 dla zegara wewnętrznego 8Mhz, 0010 dla 6,4Mhz. Sprawdź w manualu.
Odnośnie pytania A do czego służą wstawki asemblerowe i czy są konieczne? Tiny13 ma tylko 64bajtów SRAM Mikrokontroler nie potrafi bezpośrednio zapisać wartości do zmiennej. Kiedy więc ma ustawić w zmiennej 20ms wartość 1 to musi najpierw załadować wartość 1 do jakiegoś podręcznego rejestru...
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...
Program napisany jest w Bascom. Delay nie ma w ogóle. Program napisany chaotycznie, ale działał ok dopóki nie dopisałem obsługi DCF77. Gdy przyjdzie odpowiednia godzina, dioda IR ma wysłać kod do odbiornika. Wtedy właśnie procesor zwalnia. Sekundy wtedy "idą" co 3 no i dźwięk ma zwolnione tempo. [syntax=vbnet] ...
Witam, cel pozostał ten sam, lecz zmienił się kod, tym razem bez Lcd, więc jako zadanie dostałem opisanie krok po kroku otrzymanego kodu oraz przeniesienie kodu z języka Bascom na kod Asemblera i C. Jako, że programowanie nie jest moją mocną stroną, prosiłbym o pomoc (rady, sugestie najlepiej w sposób...
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...
Witam, Mam problem. Chodzi o listingi z książki Marcin Wiązania - Programowanie mikrokontrolerów AVR w języku Bascom W książce są dwa przykłady sterowania matryca Led 5X7 Pierwszy przykład z książki ma za zadanie wyświetlać znaki po kolei i to działa. Natomiast drugi listing ma za zadanie przesuwać...
Moi drodzy, po co kłótnie, Po co wasze swary głupie, Wnet i tak zginiemy w zupie! Może krótko i merytorycznie wyjaśnię Bascom`owe podstawy a zacznę od komend Set i Reset. Otóż potrafią one ustawiać tylko jeden bit na raz. Jeśli numer bitu nie jest wskazany to zawsze będzie to bit numer 0. Dlatego...
Witam! Mam problem z przerobieniem kodu tablicy świetlnej z wyświetlaczem matrycowym led. Posiadam kod z książki Marcina Wiązani - Programowanie mikrokontrolerów AVR w języku Bascom przerobiony według instrukcji użytkowników w temacie: 'Program tablicy świetlnej 'Sterowania multipleksowe wyświetlaczem...
Witam Zmontowałem sobie układ Atmega32 z pojedynczym wyświetlaczem 5x7 i wszystko działa tak jak należy ale problem zaczyna się w innym miejscu. Potrzebuję połączyć 3 takie wyświetlacze, lecz nie mam pojęcia w jaki sposób to zrobić. Proszę o pomoc Tutaj podaję listing programu
Witam, Natknąłem się na problem dotyczący konfiguracji licznika Timer1. Najprawdopodobniej BASCOM zawiera jakiś błąd i używając standardowych instrucji uzyskanie PWM z tego licznika nie jest możliwe. Używając standardowych "Config Timer1..." nie można nawet zmusić Timer1 do zwyczajnego zliczania... Mniejsza...
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 ...
w jaki sposób rozwiązujesz rok w 8583 ? Jak "rozwiązuję rok" ;) to dość trudno tak w kilku zdaniach wytłumaczyć, chociaż sprawa generalnie jest prosta... Może więc zamiast się rozwodzić, pozwolę sobie wkleić dobrze (mam nadzieję) skomentowane fragmenty swojego programu. ' ****************************************...
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...
Witam Mam płytkę Loggera GPS + SD + PCF8563. Jeśli chodzi o GPS i zapis na SD wszytko jest OK. Problemem jest ( i to pierwszy raz się z czymś takim stykam ) odczyt danych z z układu PCF8563. Otóż dla pewnych wartości sekund, odczytana wartość czasu - godziny jest większa o 40 ( czterdzieści ). Czyli...
Może najpierw zacznę od tego co muszę zrobić. Potrzebuję generatora impulsów PWM, ma mieć kilka częstotliwości do wyboru z góry zdefiniowanych, po wybraniu jednej częstotliwości i naciśnięciu startu wypełnienie ma się zmieniać powiedzmy co 5 sekund o 5%. No to czeka cię zabawa z opcjami Prescaler...
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...
mam przerwanie w którym wykonuję operacje na zmiennych "globalnych" niestety po powrocie z przerwania moja zmienna odtwarza sobie wartość z przed przerwania. Czy jest jakaś możliwośc przekazania wartości z przerwania do programu głownego, oprócz on interrupt nosave? Witam, Sorki ale koledze...
Tak. Może być i w wysokim poziomie, ale takie będzie o wiele szybsze a w dodatku zajmie mniej miejsca a nie chciałem Ci zajmować swoimi poprawkami całego FLASHa w procku. In R16, Wyswietlacz1 '<-- R16 = PortD andi R16, &B00001111 ...
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...
Witam Problem rozwiązany. W programie zmniejszałem wartość rejestru OCR1A o 100. Podczas takiej dekrementacji mogło dochodzić do przypadku jak niżej OCR1A=10000 wartość timer1=9940 jeżeli w tym momencie zmniejszyłem wartość OCR1A do 9900 to licznik liczył dalej do wartości 65536 i następowała...
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ść...
Witam Napisałem program w Bascomie - i w kilku miejscach mam odwołanie do funkcji gettime. Układ pracuje na Atmega1280. Zegar RTC skonfigurowany prawidłowo: [syntax=basic4gl]Config Sda = Portd.1 Config Scl = Portd.0 I2cinit [/syntax] układ podpięty to I2C prawidłowo(zgodnie z dokumentacją) [syntax=basic4gl]Sub...
Chcę napisac własny program z wykorzystaniem Timerów. Na początek proszę o wytłumaczenie dlaczego w poniższym programie: 1. wykorzystano podzial częstotliwości zegara (po preskalerze 256) 250/125 zamiast wykonac jedno dzialanie? 2. uzyto wartość początkową Timera0 = 250 przed Petlą do Loop...
Witam Walczę z programem w Bascomie (coraz mniej mi się on podoba) listing poniżej. Docelowo będzie to zegar na lampach nixe. Projekt bazujący na mirley, ale zmianę ustawień chcę zrobić na impulsatorze. Dlaczego funkcja Zmiana_godziny i Zmiana_minuty nie zwraca mi wartości? Edytowałem...
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...
Masz ATmega8, czyli masz ADC i masz timer połączony z pinami I/O, czyli za pomocą timera możesz generować przebiegi na wyjściu. Rzecz wręcz banalna. Za pomocą ADC wykonujesz pomiar napięcia. przeliczasz go na okres, albo odrazu częstotliwość, nie wiem jak to w bascomie wyglada. W każdym razie częsottliwość...
Masz tu przykład prostego programu. Z realizowaniemkilku zadań "jednocześnie" ' i2c SCL-PortD.4, SDA PortD6, 1Wire1 - portA.0, 1Wire2 - PD4, LCD: Enable - PortB.0, RS - PortB.4, D7 - PortB3 , D6 - PortB2 , D5 - PortC2 , D4 - PortB1 ' PA0 + dla LED1, PA1 + dla LED2 , PC3...
Coś mi się tu nie podoba. Masz w ustawianiach Pwm = 8 Czyli rozdzielczość to 8 bitów Więc czemu pakujesz tutaj 500 Pwm1a = 500 Skoro rozdzielczość to 8 bitów? Ja bym to zrobił tak, Zostawił tą rozdzielczość 8 bitową (czyli max wartość PWM1a to 255) NIE MOŻESZ DAĆ TAM 500! Teraz wartość...
Pobieżnie przejrzałem Twój program (właśnie wychodzę do pracy...) i od razu widzę babola przy konfiguracji portów jako we/wy. Masz tam coś takiego: Config Portb.0 = 1 , Portb.1 = 1 , Portb.2 = 1 Portb.0 = 0 : Portb.1 = 0 : Portb.2 = 0 Wg mnie powinno być: Config Pinb.0 = Output ...
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...
Spróbuj zamiast Timebase zrobić Load Timer0, 31250 ................ Timer/Counter0 (TCNT0) jest 8-bitowy rejestr. Jak więc chcesz do niego wpisac liczbę większa niż 255? (!) Nie jest tu istotne czy stosujesz wpis zmiennej 'timebase' czy tez liczbę const. skutek jest ten sam. Popatrz na mechanizm...
Witam. Standardowe połączenie atmega plus PCF8583, standardowe procedury odczytu i zapisu a mimo to zapis w ogóle nie działa a odczytuje same głupoty. Działanie PCF-a też jest strasznie dziwne. Mianowicie sekundy odlicza normalnie ale dziesiątki sekund zwiększa już gdy jednostki sekund mają wartość...
czy tak trudno zerknąć do helpa PWM1A = wartość zmienna = PWM1A alias rejestru Compare 1A licznika TIMER1 (Word) używany gdy licznik pracuje w trybie PWM PWM1B = wartość zmienna = PWM1B alias rejestru Compare 1B licznika TIMER1 (Word) używany gdy licznik pracuje w trybie PWM PWM2...
Witam To mnie Kolega zaskoczył - jeśli chodzi ilość wysyłanych bajtów Wzorowałem się na [url=]tej 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 (...
witam. w związku z zapytaniami na meila odpowiem na ile mogę tu(być może komuś się to przyda. Jesli gdzies walnołem jakis bład prosze o wybaczenie:) już dawno projekt zakonczony a nie chce mi się na nowo teraz wszystkiego instalować i sprawdzac. na początku zanim zacząłem co kolwiek pisać podpatrzyłem...
trzeba przeprowadzić tak zwaną inicjalizację w C wygląda ona tak void rtl_init (void) { rtl_config_ports(); // konfiguracja linii komunikacyjnych rtl_reset(); // reset RTL8019A rtl_write(RSTPORT, 0x00);...
Ello, Generalnie jak dla mnie długość życia procka nie ma wiekszego znaczenia. Po kombinacjach z komendami powstalo coś takiego: [syntax=basic4gl]$crystal = 8000000 'Deklaracja częstotliwości kwarcu $regfile "attiny2313.dat" ...
Proszę bardzo, oto program. Jeśli chodzi o obsługę multipleksu to jest ona zrealizowana, że najpierw jest zatrzaskiwana wartość w rejestrach przesuwnych, potem zaświecany dany poziom wraz z odpowiednią wartością dla niego i w tym samym czasie do rejestrów przesuwnych ładowane są już kolejne dane...
Możesz napisać i cieszyć się funkcjonalnością nie wiedząc o co chodzi ... $baud = predkosc_transmisji Tylko jeśli nie umieści się tej informacji w kodzie i użyje gdzieś Print/Input lub pochodnej to kompilator ustawienia dla $baud bierze z tych zdefiniowanych w IDE. Bascom konfiguruje od razu...
Nie jestem taki pewien. Dalej w opisie $noramclear jest napisane , że zawartość komórek pamięci nie zostanie skasowana , co nie oznacza , że pozostaną w niej zmienne, a raczej , że pozostaną w niej wartości przypadkowe. Jeśli napięcie zasilania nie spadnie poniżej poziomu podtrzymania pamięci SRAM to...
Witam!! Na Atmedze8 i sprzętowym SPI komunikacja z modułem TLX095(bezprzewodowy transmiter) działa OK. Oto kod konfiguracyjny SPI: Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 128 , Noss = 0 jeśli próbuje Atmegę zamienić na Attiny2313...
Witam, próbuję zaprogramować prosty zegarek na PCF8583 na płytce EvB i już na wstępie napotkałem na ścianę. Jestem początkujący - generalnie to pierwszy program w bascomie, który ma więcej niż kilkanaście linijek, więc liczę na Waszą wyrozumiałość i pomoc. Udało mi się na podstawie przykładów z...
Witam! Na początku przepraszam bardzo, jeśli popełnię jakieś błędy, ale siedzę nad problemem już od rana non-stop i pewnie nie widzę czegoś prostego, a stopień mojej frustracji osiąga już granice bezpieczeństwa. Ale do rzeczy: Mam następujący kod odbierania RFM12B napisany w Bascom (gotowiec z forum): ...
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...
Siemka! Od kilku dni spędza mi sen z powiek pewien problem. Mam ATmega8 połączoną z układem DS1307, połączenie na pewno jest poprawne, DS1307 podłączony jest też do bateryjki, a taktowany jest kwarcem zegarkowym. Układ działa poprawnie bo można do niego wpisać dane i da się też je odczytać, po wyłączeniu...
Witam. Czy może mi ktoś powiedzieć co robię nie tak. Tak - nie czytasz dokumentacji... :twisted: Przecież próbujesz zapisywać/odczytywać dane do/z jakiegoś innego układu niż Twój AD5933 ;) Jego adres do zapisu to &H1A , a do odczytu &H1B (adres podstawowy &B0001101 plus bit kierunku 0 =...
Ldi R30, 28 Ldi R31, 78 Rcall _lcd_delay ; 20 ms delay at 4 MHz Witam, przedstawiony kod asemblerowy jest niezmiernie prosty w edytowaniu i zmienianiu parametrów instrukcji. Ldi - jak każdy wie, to ładowanie odpowiedniej wartości do rejestru Rcall - wywołanie programu. ...
Nic nie trzeba informować kompilatora - Bascom ładnie przyjmuje wprost rozkazy asemblera ale w zasadzie atom1477 zrobił to nawet bez asemblera - sorki - po prostu "ręcznie" odwołał się do rejestrów i wpisał do nich odpowiednie wartości tzn poustawiał bity tak żeby coś tam działało w tym przypadku...
Cześć Chciałem prosić kogoś o wskazówkę jak poradzić sobie z problemem wyświetlania wartości "Wartosc2" poniższego kodu. Mój problem polega na tym że w momencie naciśnięcia przycisku ( w programie to Up, Dwn ) gdy na wyświetlaczach jest np 1.1 wyświetlacze "resetują" się i wskazują wartość 00...
Niestety, chciałbym aby w tym tkwił problem...lecz wydaje mi się, że obie komendy są poprawne przykładowo Reset Pinb.1 działa tak samo jak Reset Portb.1 NIE, nie masz racji! O ile istnieje pewna 'swoboda' użycia PIN/PORT przy configuracji kierunku Portu/Pinu (bo w zasadzie Bascom taki syntax...
Przepraszam za dłuższą nieobecność. Nie mając nic nowego (i mądrego) nie pisałem. Ale w międzyczasie polutowałem zestaw startowy, a ostatnio napisałem inny program, który umożliwia (w zamyśle) liczenie dokładniej częstotliwości dla "paczki" impulsów, tym razem około 500 Hz. Wiem, że to dosyć skomplikowany...
(at)LChucki (at)1bcz Jak już pisał (at)tmf przy prędkości 4M masz zaledwie 32 takty zegara na obsłużenie przerwania. Mamy dwa możliwe scenariusze: 1. Slave jako odbiornik O ile pamiętam (AVR-ów nie używam od dłuższego czasu) to samo wejście do przerwania zajmuje 8 do 11 taktów zegara....
OK, myślałem że mnie ktoś wyręczy , ale ... :( Dodaję komentarze: $regfile = "attiny2313.dat" $crystal = 4000000 Config Portd.5 = Output 'musi być ustawiony jako wyjście , by można go podłączyć do przerzutnika OC0B Ocr0b = &H37 'wartość obliczyć tak:$crystal/(36000*2) 'Pow...
Chodzi mi konkretnie : do zmiennej jest wpisana wartość od 0 do 255 odczytuję tą wartość następnie za pomocą portu np portd.0 wpisuje do rejestru przesuwnego i na wyjściu tego portu przesuwnego otrzymuję wartość zmiennej wystawionej binarnie czyli 01010101 do tego celu zmienną muszę zamienić na bin...
Witam. Mam problem z komunikacją z RTC DS12887 (DS1287). Układ wykorzystuje cały port do adresowania oraz wymiany danych oraz kilku dodatkowych do sterowania. Używałem tego układu do pracy dyplomowej (11 lat temu) i pisałem wówczas w asemblerze. Natomiast obecnie programuje w Bascom-ie i tu zaczyna się...
Bascom - wersja 1.11.95 Kod, no jest tego sporo: - zegar PCF8563 - Zapis na SD - dwa czujniki DHT11 - odczyt z PCF8574AP ( klawiatura ) - RC5 - ma być DS18B20 - ma być DCF77, ale nie doszedłem do tego momentu ( tzn testowałem na innym procesorze i działało ) Działa - zegar PCF8563 - dwa...
Acha to teraz wiem z skąd mam odczyty pomimo że DS nie zakończył czasu konwersji. Jeśli jest tak jak piszesz to według mnie mogę mieć błędny odczyt temperatury tylko wtedy kiedy podczas odczytu starej wartości temperatury (a kiedy w rejestrze nie ma jeszcze nowej wartości) temperatura nagle podskoczy...
Witam Mam Atmega32A + PCF8563 + PCF8574 + RFM12 + DS18B20 +DHT11. Port danych LCD to Port.A, ControlPort to Port.C. I2C standardowo na Portc.0 Portc.1. Niestety jest problem z obsługą I2C, tzn. zegar PCF8563 nie działa w ogóle ( na LCD puste pole ) , a klawiatura na PCF8574 - tylko jeden klawisz i to...
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...
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...
Rozumiem że te porty ustawiasz jako wejścia (czyli DDRB = 0XFF), Drobna pomyłka bo powinno być DDRB = 0x00, czyli DDRB = 0b00000000. Niby drobiazg, ale początkującemu może namieszać. W procesorach AVR każda końcówka I/O powiązana jest z trzema rejestrami, które to decydują o przeznaczeniu tej...
Po zapoznaniu się z datasheet Atmegi 8 (str.186-188 oraz rejestrów na str.309) troszkę mi się rozjaśniło. Oto poniższy kod który stworzyłem na podstawie powyższego. ....... Sprawdzę działanie w praktyce jutro. Gdyby było coś jeszcze w nim nie tak to proszę o reakcję :) \] O to właśnie...
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...
yarpen2 napisał "resetujesz Pinb.0 na początku". Rejestru pinb.0 nie da się zresetować bądź ustawić. Jest to rejestr do odczytu. Co innego Portb.0. Przy pracy końcówki portu jako wejście wartością wpisaną do rejestru Portx włączasz (1) lub wyłączasz (0) wewnętrzne rezystory podciągające. Zatem Reset...
Kol. Roko . Częściowo takie rzeczy pojawiły się już w polskiej pomocy do BASCOM-a On-Line. Obecnie jest jednak ona czasowo niedostępna. Przykład: BASCOM AVR - Tworzenie programu W trakcie edycji (...) Jak nie pisać programów. Dość często podczas przeglądania programów udostępnionych...
Masz tam za mało o jedną cyfrę musi być osiem a masz napisane siedem jedynek w wierszu Config PORTC = &B1111111 powinno być Config PORTC = &B11111111 ale w atmega8 jest tylko do PC6, nie ma PC7. pozdrawiam W tej chwili ignorujesz PC0 a nie PC7. Zobacz sobie datasheeta, jak są numerowane...
Witam. To tej pory nie stosowałem zbyt często timerów do generowania przerwań celem generowania odcinków czasu. Być może dlatego żyłem w słodkiej nieświadomości pewnych komplikacji będących nie bez wpływu na dokładność odmierzanych odcinków czasu. Do tej pory wydawało mi się, że dla danego rezonatora...
Witam. Od jakiegoś czasu studiowałem w sieci różne materiały na temat matryc LED i ich sterowania. Mój projekt teoretycznie powinien działać, jednak jest bardzo toporny w oprogramowaniu, a przy chęci wyświetlenia dłuższego tekstu po prostu (z powodu archaicznego programu) zaczyna brakować w uC...
Pozwolicie, że odkopię ten temat, gdyż widzę, że autor ostatniego postu zagląda jeszcze na forum i mam nadzieje, że on lub ktoś inny mi pomogą. Tak jak opisałem w temacie: staram się wykonać matrycę led 5 na 24 z użyciem Atmegi16/32 i 3 rejestrów przesuwnych 74HC595. Ustaw port D jako wyjscie. 1....
Witam Mam taki programik troszke posklejany ale wyskakuje błąd co robie nie tak . label not found [_ENDIFO ] $regfile = "m8def.dat" 'Atmega8 $crystal = 8000000 'Kwarc 8MHz Config Lcd = 16 *...
Witam! Chciałbym uzyskać przebieg o wypełnieniu 50% i f~33kHz w trybie CTC na pinie PB3 Atmega 8L (OC2). Podpiąłem wyjście OC2 na oscyloskop i ciągle stan wysoki. Pierwszy raz i na szybko potrzebuję wygenerować taki przebieg. Proszę o pomoc. Późno już i coś mnie chyba przyćmiło. Namieszałem coś...
Chciałem się dowiedzieć jakie częstotliwość próbkowania osiągacie przy stabilnym odtwarzaniu *.wav bez zakłóceń wynikających z obsługi karty. Śledzę temat od dawna. Ostatnio z potrzeby chwili zacząłem eksperymenty. Oprogramowanie jest napisane w Bascom/Asm. Kiedyś napotkałem PDF'a kolegi Saabotaz...
To co dobre do czytania z czujnika niekoniecznie dobre jest do zapisywania w nim. W nocie jest taka tabelka: Jednocześnie w innym miejscu noty można przeczytać: It is not possible to write into the RAM memory. It can only be read and only a limited number of RAM registers are of interest...
Nie musowo być biegłym w BASCOMie. Wystarczy znajomość jednaj komendy z BASCOMa: On Timer. [syntax=vbnet] On Timer1 Timer1_handler ... Timer1_handler:... robisz pomiary ADC Return [/syntax] A do skonfigurowania Timera w tryb PWM Phase Correct wystarczy wpisać odpowiednie wartości do rejestrów...
Witam, Próbowałem poustawiać rejestry ale niestety nie mogę otrzymać sygnałów przesuniętych w fazie :/ A gdyby uruchomić licznik który zliczał by np. od 0 do 100 (tylko przykładowe wartości podałem dla przykładu) i gdyby następnie porównywać rejestr stanu licznika TCNT z wartością wypełnienia...
Witam Mam zegarek/budzik z wyświetlaczem LED ( dwukolorowy ). Zegarek generalnie działa. Ale mam problem z sterowaniem jasnością. Wiadomo, że robi się to tak, że jasność zależy od częstotliwości odświeżania. Tutaj o jasności wyświetlania ma decydować zmienna jasnosc. . jasnosc : [syntax=vbnet] '************...
PortX (x dowolne) zawsze zawiera wartość jaką wystawia procesor na wyjście (dla pinu wyjściowego to będzie stan wysoki/niski, dla wejściowego pullup/open), natomiast PinX przy odczycie daje rzeczywisty stan panujący na pinie. Warunki zewnętrzne są w stanie zmienić tylko wartości w PinX (wpisanie wartości...
Sporo tego ( obsługa SD, PCF8563 + menu do ustawiania daty, obsługa PCF8574 w przerwaniu INT1 )- ale nie ma problemu - zmieniła się tylko zawartość podprogramu Pomiar była taka, jak w pierwszym poście oraz wyłączyłem w wyświetlanie na LCD tych wartości wskazań z DS18B20, oczywiście dostosowałem pozycje...
Muszę odpowiedź poprzedzić krótkim wstępem. W Bascom do każdego obsługiwanego mikrokontrolera jest plik definicji. Można w nim wyczytać ciekawe informacje, ale trzeba wiedziec jak go otworzyć. Chodzi o to że edytor Bascom formatuje tekst i przy zamykaniu takiego pliku mógłby go tak zmienić że byłby...
Koledzy zapalanie zera potem 1 przy przejściu z 9 na 10 było spowodowane złym ustawieniem Timer0 tera wszystko działa jak chciałem . ........... mam nadzieję że ktoś się wypowie składni programu lub optymalizacji . Mimo że program ten wydaje sie byc poprawny , bo jakoś tam pracuje, ma jednak...
Sprawdź zawartość Rejestru TCON jaką wartość reprezentuje IT0, na Bascomie się nie znam ale takie programiki NIE MOGĄ NIE DZIAŁAĆ. Posprawdzaj rejestry odpowiedzialne za system przerwań może globalne komendy zmieniają coś więcej niż byś chciał. Sprawdź Rejestr zezwoleń na przerwania i priorytetów.
No to się sprawa wyjaśniła i wszystko ułożyło się jak trzeba. Z innej strony znajomość uC to brzmi dumnie. Sprawa sprowadza się do poczytania not katalogowych niedostępnych dla przeciętnego Kowalskiego, który nie zna angielskiego wraz z zasobem słów opisujących uC, ustawienia w odpowiednim czasie odpowiednich...
Witaj. 50 bitów - potrzebujesz 8 bajtów pamięci, a byłoby szybciej, gdybyś miał na wyłączność 8 rejestrów. Ustawiasz wskaźnik Carry na taką wartość, jaką ma opóźniany bit, do danego rejestru wrzucasz 1-szą komórkę pamięci, robisz ROL na rejestrze, wrzucasz rejestr do pamięci, do danego rejestru wrzucasz...
Nie pisze w BASCOM, tylko w assemblerze i działa to tak: Do określania co jest wejściem a co wyjściem służy rejestr DDRn [n - litera portu]. Więc jeżeli chcesz mieć pierwsze dwa piny jako wejście, a dwa następne jako wyjście w porcie B ustaw: DDRB 0xC [binarnie 1100] Ustawiając PORTB zmieniasz...
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...
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...
to wystarczy wyzerowac odpowiedni rejestr w uC odpowiedzialny za pracę timera 2 chodzi o rejestr TCNT2? Dodano po 2 i bit: Bit 3 – AS2: Asynchronous Timer/Counter2 ->wyzerować oraz Bit 0 – TCR2UB ? Dodano po 10 No i słusznie. C.6 pewnie też Ci nie działa Portc.6...
Witam Napisałem program, który dekoduje sygnał DCF77 ( ustawia flagę ), następnie zapisuje ( przy pierwszym uruchomieniu ) wartości zmiennych do PCF8563 i cztery razy na dobę wysyła przez RS485. do tego dwa razy na dobę koryguje czas w PCF8563. I to działa bez problemu. Do celów testowych mam podłączony...
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Ś...
Czy Kolega będzie może wiedział co jest nie tak od strony programistycznej ? Tzn. jeśli wyświetlam stałe wartości to jest ok, podobnie jak wyświetlam w pętli For... Next od 1 do 59. Dodałem jeszcze obsługę LCD, żeby widzieć, co się dzieje z czasem. Ale jak podepnę do tego PCF8563 i odczytuje...
Pociąganie realizowane jest poleceniem "Set" - ósma i dziewiąta linijka. To nie jest podciąganie(!) Jest to próba wpisania wartości do rejestru, który z natury jest przeznaczony tylko do odczytu. Nie ma możliwości zmiany stanu rejestru "PIN.x" z poziomu programu. Stan PIN.x możesz zmienić tylko...
Wyświetlacz według tego programu masz na PORTB od 0 do 5 Przyciski chyba też (przynajmniej tak to wygląda w programie) :D Jeśli już będziesz ustawiał piny pod przyciski to pisze się: Config PINx a wewnętrzne rezystory podciągające włączasz w rejestrze PORTx gdzie x to litery portów. Nie ma...
Nie piszcie programów bez porannej kawy :D Życze powodzenia w odczytywaniu stanu wejść z rejestru PORTx Jak chcecie odczytac co jest na porcie to pracuje sie z rejestrem PINx Może dziwnie to wygląda ale zmienna powinna sie równać PINA :D Mikroprzykład PINx do zmiennej i Andujemy maską...
Sprobuj tego kodu: I2cstart I2cwbyte 208 I2cwbyte 0 I2cstop I2cstart I2cwbyte 209 I2crbyte S, Ack I2crbyte M, Ack I2crbyte H, Nack I2cstop I2cstart I2cwbyte 208 I2cwbyte 7 ' 2 rejestr ( Alarm1 ? ) I2cstop I2cstart I2cwbyte 209 I2crbyte...
jeszcze jeden mały problemik (próbuję to już zrobić od 6 godzin): mianowicie chodzi o zapis wartości pwm do epromu co jakiś czas (nie za często - tylko kilka chwil po nastawieniu nowej wartości przyciskami) żeby można ją było odtworzyć po włączeniu zasilania. przerobiłem to już w każdym możliwym wariancie...
Też wtrącę swoje trzy grosze. Zacznę kontrowersyjnie. Warto spojrzeć kto doradza - jakoś tak się składa, że C/C++ doradzają osoby mające tysiące postów na koncie i często setki lub tysiące "pomógł", po przeciwnej stronie mamy osoby z licznikiem na poziomie kilku-kilkunastu. Nie znaczy to oczywiście,...
Witam podaję kod, który działa poprawnie, oczywiście należy go dopasować do swoich potrzeb. [syntax=vbnet] 'Stero... swiatel V2.2 '10-06-2015 'Roman Biadała $regfile = "m128def.dat" $crystal = 11059200 '$lib "fp_trig.lbx" '******** Ustawienia portów ****************************************...
No to teraz już nie mam pojęcia jak to zrobić. Masz jakiś pomysł? Takie coś chciałem zrobić A najlepiej to chyba mierzyć prąd impulsowy gdzieś w środku impulsu PWMa. I odpowiednim wartościom prądu impulsowego przyporządkować odpowiednie wartości PWMa. To już nie wymaga filtru (nie może go w zasadzie...
Witam Realizuję projekt na procku XMega 128A1. Pod PORTA.1-4 mam podłączone czujniki liniowe z napięciem na wyjściu 0-10V. Jeśli chodzi o same pomiary to wszystko działa prawidłowo. Natomiast przy wartości 0V na czujniku XMega wskazuje wartość około 30-40mV. I moje pytanie brzmi czy jest możliwość...
Witam, Proponuję spróbować tego, to kawałek kodu z mojego pliku pomocy w obsłudze termometru DS18B20: 'Odczyt temperatury z dokladnością do dziesiątych części $regfile = "89s8252.dat" $crystal = 12000000 Dim Odczyt(2) As Byte 'deklaracja dwóch zmiennych typu byte do których...
Moim zdaniem całość nie działa poprawnie, bo używasz Timera1 pracującego w trybie CTC jednocześnie do odmierzania odcinków czasowych wyświetlacza i do pomiaru czasu zatoczenia pełnego koła. W trybie CTC Timer liczy od 0 do wartości Compare1a po czym zostaje wyzerowany, więc ten podprogram w przerwaniu...
Poi pierwsze. Do BASCOM-a jest pomoc - także po polsku, której to zresztą jestem autorem. Wersję on-line (beta) znajdziesz na mojej stronie WWW. Jak one działają? Zliczają impusy. Albo z prescalera, albo z zewnątrz. Patrz nota katalogowa. W którą stronę zliczają? Zwykle liczą w górę. W trybach...
Ja mam podobny problem, potrzebuję wpisać na początku programu dowolną zmienną 4-cyfrową np DEC 6100 która koniecznie w efekcie końcowym programu musi mieć wartość HEX 17D4. Aby wprowadzić tę liczbę do rejestru muszę ją rozdzielić na dwie części, czyli 17 i D4. Aby wprowadzić liczbę na samym początku...
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).
Witam Wszystkie szczegóły odnośnie transmisji masz na stronie 6 w postaci graficznej. Bardzo ładnie wszystko widać. W pierwszej kolejności ustawiasz pin CS i LDAC w stan wysoki a SCK w stan niski. Żeby rozpocząć transmisję do układu (DAC) ustawiasz stan niski na wyjściu CS następnie na wyjściu danych...
Jeśli chodzi o punkt drugi to zmieniłem i teraz na wyświetlaczu przynajmniej napis nie mruga, ale nadal zero reakcji na przyciski. I jak sterować tym kursorem? I jeśli tam jest zmienna program 1 i program 2 do przechowywania wartości do wyświetlania to jak wybrać program 2 bo teraz mam cały czas program...
Witam, niestety ale chyba coś jest nie tak? Na wstępie należałoby wyjaśnić że nie ma czegoś takiego jak "automatyczne przeładowanie timera" (reload/load timer1 powiedzmy). Termin ten jest związany z procedurą konfiguracji timerów występującą tylko w trybie "Normal", gdzie każdorazowo początkowa...
Taki oto kod nie działa: [syntax=basic4gl] $regfile = "m32def.dat" $crystal = 16000000 'Config Timer2 = Timer , Async = Off , Pwm = Off , Prescale = 256 Timsk = &B01000000 Tccr2 = &B00000111 Enable Timer2 Enable Interrupts On Timer2 Przerwanie Do Print "obsluga programu" Loop End Przerwanie: Pri...
Wojtek - wchodzisz tutaj: [url=]Strona z kalkulatorem 16MHZ z preskalerem 1024 oznacza że: - 1 sekunda nastąpi po 15625 cyknięciach timera - przerwanie następuje przy przepełnieniu jeśli wybierzesz OVERFLOW, ale może tez nastąpić przy COMPARE, od tego zależy jaką wartość wpiszesz do timera (czy...
Ale Bascom przecież łyka instrukcje asm. Napisz mu np coś takiego: OCR4AH=00 OCR4AL=12 Spra... może też z małymi literami. Jeśli to nie zadziała to można podać mu to jako wstawkę asm. Być może nie opisali jeszcze tych rejestrów w tym kompilatorze. Też tak zrobiłem, ale mam problem z podziałem...
Witam Napisałem prosty program używający timera1 i timera 2 do zliczania częstotliwości, Chciałbym użyć dodatkowo serwa do mojego projektu ale używając intrukcji Servo coś nie tak dzieje się z serwem . Po włączeniu zasilania ciągle pracuje i próbuje przekręcić się o 360 stopni "ciągle pracuje". Kiedy...
Witam Ma zegarek na Atmega 168+ PCF8563 + wyświetlanie przez rejestr przesuwny. Chciałem do tego dodać alarmy ( 5 alarmów ), z tym, że każdy alarm może być ustawiony na więcej niż jeden dzień tygodnia. Wzorowałem się na moim starym, kupionym 22 lata temu budziku, który ma program zapisany w pamięci...
zasadniczą różnicą jest to, że przez rejestry jest możliwe adresowanie pośrednie, czyli wartość w rejestrze wskazuje adres danej, są to rozkazy z (at)
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...
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...
A musi być wyświetlany aktualny wynik na wyświetlaczu sekund setnych? Jeżeli to ma być stoper to chyba liczy się wartość końcowa, np po naciśnięciu jakiegoś przycisku stopu... Ja zrobiłbym w ten sposób że władowałbym w chwili startu psełdo 88 na wyświetlacz setnych części sekundy i zostawił takie coś...
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
Po pierwsze, możesz jak najbardziej korzystać z timera (a właściwie to powinieneś, jeżeli chcesz pomniejszyć koszta o zakup zewnętrznego RTC). Po drugie - możesz kalibrować, możesz to robić długo i bezskutecznie. Po drugie i ćwierć - Wewnętrzny oscylator nie za bardzo nadaje się do tego celu. "Nieco"...
Okej mam taki oto programik który realizuje mniej więcej moje założenie - trochę się naszukałem ale ile przy tym znowu nauczyłem ;) Config Lcd = 16 * 2 Dim Ad As Byte Dim Pa As Single Do Do ' początek pętli programu Cls ...
W nocie aplikacyjnej, w rozdziale External Interrupts masz bardzo ładnie opisaną różnicę pomiędzy INT0 a PCINT5..0. PCINT5..0, Pin Change INTerrupts, reaguje na zmianę stanu na pinach. INT0 może reagować także na poziom niski lub tylko wybraną zmianę (zbocze), to jest jedna z różnic pomiędzy tymi właśnie...
Teoretycznie proste - "dodać do rejestru" W rejestrach doszedłem do Parport i nie znalazłem Parameters. Znalazłem tylko Enum. Próbowałem różnych czarów marów lecz nie wiem czy była to właściwa droga do sukcesu. Dlatego też mam prośbę abyś mnie poprowadził za rączkę. Pod prawym klawiszem myszy mam...
Witam. Robię sobie komputerek spalania do samochodu. Wszystko ładnie wychodzi poza czasem wtrysku a co za tym idzie - spalaniem. Występują jakieś zakłócenia i nie wiem dlaczego. Może ktoś pomoże....:) Kod: $regfile = "m168def.dat" $crystal = 16000000 ''''''''''''''''''''''''''ko...
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
Witam i dzięki za zainteresowanie problemem, ale niestety nie może (99%) to być wina potencjometrów i przetwornika. Wykasowałem odpowiednią cześć kodu ale zrobiony był jeszcze podgląd wyników na wyświetlaczu. Dodatkowo aby wyeliminować małe wahania wyników dziele je przez 4. Co do tego rozjeżdżania to...
... Jedyny minus, przy pwm1a=0 są "szpilki"... Zamiast wpisywania do rejestru ocr1a(Pwm1a) zera , przełącz funkcję PINB.1 na standardową(I/O) , poprzez wyzerowanie bitu COM1A1 w TCCR1A.Przed uruchomieniem Timera wyzeruj PORTB.1 . Np. Set DDRB.1 Reset PORTB.1 TCCR1A=&B10000001 TCCR1B=&B0...
Witam. Napisałem sobie prosty program do sterowania fazowego: $crystal = 8000000 $regfile = "8515def.dat" Detfazy Alias Pinb.1 Config Detfazy = Input Q2 Alias Portc.1 Config Pinc.1 = Output Config Timer1 = Timer , Prescale = 8 Stop Timer1 On Timer1 Irq_t1 ...