Impulsator nie będzie pracował na przerwaniu tylko zwykle w pętli do loop bo takie rozwiązanie wystarczy. W tejże pętli będą także wysyłane sygnały regulacyjne po I2C jako odpowiedź na regulacje wykonane impulsatorem oraz wyświetlane dane na LCD. Procedura obsługi przerwania od Rx (MIDI) odczytuje bajt i jeżeli równy jest 176 (nasze dane) to czyta dwa...
ok powieminaczej usiluje wyslac szeregowo paczki danych z procesora z zewnetrznego zrodla zegarowego i co nastepuje w bascomie : polecenie shiftout - nie ma mozliwosci wysylania danych z zwenetrznego zrodla zegarowego - to pocelecnie samo generoje na pinie clk zegar - wiec to polecenie nic mi nie daje : myslalem o spi w trybie slave tak wiec na pin...
Na pewno ma być instrukcja LDS? Przecież to ładuje zmienną z SRAM a nie adres? Nom, ale to jest zdajesie zapis BASCOMA i pewny nie jestem. To zależy jaka tablica, i czy kod ma być uniwersalny czy nie i gdzie to kopiować i czy w ogóle jest taka potrzeba. Kolejne bajty kopiowania z FLASH do SRAM w asm, np 120 sztuk coś w tym stylu: [syntax=avrasm]ldi...
Czy nie lepiej wykonać obsługę sekwencji w procedurze obsługi przerwania timer'a ? Co należałoby zrobić ?: - zdefiniować przerwanie np co 50 ms - dodać programowy dzielnik /100 w przerwaniu (5s) - wykonać tablicę sekwencji w pamięci programu - każde przepełnienie dzielnika powoduje odczyt danej z tablicy (w zależności od numeru sekwencji i numeru kroku)...
A nie prościej będzie robić w pętli 100 odczytów, wyniki sumować w jednej zmiennej, a na końcu podzielić tą zmienną przez 100. Pozdrawiam Yakuza
Witam w bascomie to wygląda tak: Dim Rejestr_1 As Long At &H500 Dim C1 As Byte At &H500 Overlay '0 Dim C2 As Byte At &H501 Overlay '1 Dim C3 As Byte At &H502 Overlay '2 Dim C4 As Byte At &H503 Overlay '4 nie wiem jak w c mam nadzieje że ci to coś pomoże. potem robisz zapis w eepromie i odczyt
Witam. Sekwencja to kilkanaście sekund, odtwarzana w kilkuminutowej pętli. Proponowane wykorzystanie timera daje jedynie odmierzanie owych 1ms impulsów dla liczników i zapewni jedynie większą dokładność pomiaru niż waitms. Z tym nie ma problemu. Komenda ta zapewnia mi to czego potrzebuję i z tym nie mam problemu. Wykorzystanie tablicy to pomysł wart...
Witam, mam mały program napisałem przy użyciu książki Pana Marcina Wiązania oraz przy użyciu elektrody do obsługi matrycy led, lecz mam nieporządany efekt stroboskopowy. Nie widać liter, tekstu, tylko wszystkie diody mrugają. Czy to jest spowodowane zasilaniem czy też błędem programu? Dorzucam dwa programy, przy których pracowałem i schemat, schemat...
EBI ma być szybkie, to DMA ma odciążać CPU. EBI możesz taktować 2x szybciej niż CPU. Czyli dla taktowania CPU 32 MHz, EBI może działać z częstotliwością 64 MHz. Ma to duże znaczenie, o czym możesz się przekonać oglądając timingi operacji zapisu i odczytu dla EBI. Np. odczyt trwa co najmniej 2 takty EBI, czyli jeśli go taktujesz 2x szybciej niż CPU to...
Tak jak wprowadza się dane do tablicy...
Książka to "Programowanie Mikrokontrolerów AVR w jez. BASCOM" Program termometra. Przykład z książki. 'Program obsługi jednego układu DS1820 dołączonego 'do magistrali 1-Wire $regfile = "m8def.dat" 'informuje kompilator o pliku 'dyrektyw mikrokontrolera $crystal = 8000000 'informuje kompilator 'o częstotliwości oscylatora 'taktującego mikrokontroler...
Witam. Ze względu na warującą ostatnio na dworze temperaturę chciałem zrobić prosty termometr oparty na 89s52 i czujniku 18b20. Napisałem program i o ile pomiar temperatury działa należycie z dokładnością 0.5*C to mam spory kłopot z porównaniem i zapamiętaniem tej minimalnej- aby rano wiedzieć do jakiej spadła temp w nocy. Układ sprawuje się dobrze...
Witam Mam program, który, po dokonaniu pomiarów, wysyła dane przez RFM12 i zapisuje na karcie SD. Chcę dołożyć wysyłanie danych do Domoticz po każdym pomiarze. Problem w tym, że po dopisaniu obsługi ESP8266 i Domoticz ( zmienne miałem już wcześniej zadeklarowane ) to pojawiają się błędy w zapisie na karcie SD. No i wysyłanie do Domoticz przestaje działać,...
Witam ! Skopiowalem sobie z Helpa bascomu taki oto kod... chce to skompilowac ale wywala blad najpierw przy: W = 1wirecount(ar(1)) pozniej: Ar(1) = 1wsearchfirst() Ar(1) = 1wsearchnext() Posiadam taki procesor jak jest zadeklarowany w kodzie...ale za Chiny nie chce to ruszyc :( '---------------------------------------... ' 1wirecount.bas...
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...
Tzn. mam tablicę 24 bajty ( na razie do testów). I teraz podaje adres początkowy z tablicy, od którego zaczyna się ID układu DS18B20. Podprogram ma załadować ID, odczytać, sprawdzić CRC i w odpowiedzi podać mi LSB, MSB, status czujnika, histereze ( poprzednią muszę mu jakoś podać ) i wynik w postaci zmiennej typu string. Wzorowałem się na czymś takim:...
Więc wiadomo już jaki to język, oczywiście bascom. Jest wykorzystywana taka sama zmienna ponieważ dane typu byte, zmienna startuje od 1 i index w tablicy pokrywa się z adresem eepromu. Bez problemu odczytuję dane z eepromu (oczywiście poza pętlą) więc eeprom na pewno jest :). Racja jest coś o tym w helpie, ale jakoś nie bardzo rozumiem dlaczego działa...
Witam wszystkich *********** Wielka prośba o pomoc *********** Napisałem w Bascom'ie na procka AT89c2059 mały programik zamka obsługujący pastylkę Dallas'a. Odczytuje pastylkę i porównuję ze wzorcami które wpisałem w program na stałe i to wszystko działa. Tutaj mam pytanie jak odczytany numer z pastylki który jest w tablicy (8 elementowej) zapisać...
Potrzebuje napisac program na procka 4051 ktory odczytuje dane z rsa. Poniewaz sa spore zaklucenia musze przesiac informacje otrzymane przez uC przez jakas procedure sprawdzajaco-korygujaca. Mysle ze crc8 wystarczy mi. Na forum znalazlem skrypt do ukladu ds1820 wykorzystujacy crc8. Z tego co przeczytalem wynika ze ds1820 to uklad do pomiarow temperatury....
Jakby co to całość programu znajduje się $regfile = "2313DEF.dat" $crystal = 10000000 Dim Eaddress As Eram Byte At 2 'adres pilota Rc5, zosatał umieszczony pod adresem 2 gdyż z doswiadczenia wiem, że komórki 0 i 1(szczególnie 0) pamięci EEPROM potrafią się skasować przy nagłych skokach napięcia zasilania Dim Epamiec(16) As...
Witaj :D Według mnie tablica jest niezbedna poniewaz to w niej sa zapisane wlasciwe znaki , i wydaje mi sie ze nauczuciel sie myli bo samo polecenie getatkeyb() zwrocilo by numer wcisnietego klawisza a nie konkretna literke , liczbe czy znak . Przykladem moze byc fragment polskiego helpa do bascom-a w ktorym jest opisane dzialanie tego polecenia Funkcja...
Poprawiłem nieco kod i wygląda tak :[syntax=vbnet] $regfile = "m16adef.dat" $crystal = 80000000 $hwstack = 40 $swstack = 16 $framesize = 32 Config Porta = Input 'port A jako wejścia Config Portb = Output 'port B jako wyjścia ' Config Portd = Input 'Port D Jako Wejścia Config Portc = Output 'port C jako wejścia Config Sda = Portc.1 'konfiguracja pinu...
witam nie bawiłem się jeszcze 1921 ale obsługa jest standardowa tylko przy odczycie temperatury musisz dać opóźnienie na konwersje temperatury jakieś 750ms. DS1994 ma wiele funkcji i własny eeprom po za tym można zrobić całkiem dobry system kontroli dostępu zabezpieczenia wszystko zależy od pomysłowości. pamiętaj jedno jak piszesz cokolwiek do 1-wire...
Witam Wczoraj zakupiłem sobie czujnik ds18b20 miał być ds1820 o czym dowiedziałem się dopiero w domu po nieudanej probie odczytu temperatury. Kod który użyłem pochodził z książki M. Wiązani. (niżej go zamieszczam). i tak po połączeniu wszystkiego wg. schematu dostałem odczyt temperatury -52 st. C co jest absurdem bo powinno być ok. 20 - 21 st. C i tak...
zacznij od tego kodu $regfile = "m8def.dat" $crystal = 8000000 Open "comd.3:4800,8,n,1" For Input As #2 Open "comd.2:4800,8,n,1" For Output As #1 Dim Poz As String * 32 Dim Poz1 As String * 20 Dim Poz2 As String * 20 Dim Poz3 As String * 32 Dim Pozv1 As String * 2 Dim Pozv2 As String * 7 Dim Pozv3 As String * 7...
Jeżeli będziesz chciał to wykorzystać to szykuje Ci się niezła zmiana w kodzie, bo tym za prosto obrazków w formacie BGF nie narysujesz. Nie mam w zamiarze używania plików *.bfg. Odczytuje i zapisuje do lcd bezpośrednio po odczytaniu z pliku, dane które są niejako tablicą. Odczytuje z pliku dane linijka po linijce gdzie jedna linijka w pliku odpowiada...
Witam Testuje termometr na dwóch Ds18b20 i żeby wynik wyświetlany był trzech wyświetlaczach 7seg. LED. Ma działać tak że najpierw pokazuje na 3 sekundy 1 temperaturę a po tym czasie na kolejne 3 sekundy pokazuje 2 temperaturę. Linie 1 wire podciągnąłem z rezystorem 3,3K do +5V. Wszystko działa temperatury się zmieniają i wyświetlają ale co jakiś czas...
Poprawiłem ten kod według wskazówek i działa z instrukcją case w podprogramie oraz z taką samą instrukcją w pętli głównej. Kod programu z Instrukcją case w podprogramie [syntax=basic4gl]'Projekt sterownika na podczerwień '12 kanałów binarnych sterowanie załącz/wyłącz 'oraz 2 kanały sterowane sygnałem PWM do regulowania 'układ posiada system chłodzenia...
Kolega cristof_w ma po prostu złe nawyki z programowania c/bascom. W procesorze nie ma żadnego wydzielonego miejsca gdzie należy cokolwiek definiować albo umieszczać . Pamięć flash jest do twojej dowolnej dyspozycji i co chcesz gdzie chcesz umieszczasz. Musisz tylko wziąć pod uwagę że pierwsze komórki tej pamięci mają dodatkowe specyficzne zastosowanie...
Witam, na wstępie uprzedzę, że jestem początkującym programistą bascom. Tworzę projekt, który jest połączeniem dwóch tematów tj. oraz ] . potrafię już odczytać dane z szyny i-bus w bmw i wyświetlić je na lcd , dokładnie zależy mi na danych z kierownicy multifunkcyjnej . Problemem natomiast jest wysłanie danych do radia ( np. porta.1 =1, waitus 500,...
Są oczywiście takie moduły zespolone z pamięcią. Mozna tam zapisywać i czytac po bajcie, ale można też sekwencyjnie całe łańcuchy i tablice nawet serializatorem. Dwie pierwsze funkcje podpowiem. Wygląda na to ze działaja ;) Możnaby dodać jakieś zabezpieczenia na wypadek braku komunikacji.
Witam kolegów, Postawiłem sobie pewne zadanie do wykonania i wygląda na to, że będę potrzebował jakiejś rady kogoś kto lepiej zna problem. Chodzi o komunikację mokrokontrolerów ATMEGA przez interfejs SPI. Programuję w BASCOM, gdzie są już gotowe instrukcje do tego. Cały problem wygląda tak: - Mamy 2 procesory ATMEGA8 - Mam tablicę 10 elementową X (elementy...
Zainteresuj się funkcją lookup . Pozwala ona na odczyt danych z DATA, na podstawie ich pozycji. Wszystko masz opisane w help-ie BASCOM-a.
Wiem wiem, pamięć wewnętrzna - ogólnie chodzi tu o naukę. W docelowym układzie będzie zewnętrzna, choć zapisy będą realizowane 1 dziennie. a swoja drogą jaka jest żywotność eepromu wewnętrzengo? Co do kodu, posiedziałem i pogłówkowalem i powstało coś takiego. oczywiście to przykład który teoretycznie można rozbudować do spokojnie 8-10 WY '8 MHz/256/31250...
Co może być grane. Wszystko poskładane zgodnie z prawidłami, rezystor podciągający na linii danych jest, zasilanie filtrowane odpowiednio, wszystkie połączenia miliard razy sprawdzone, a sytuacja jak w temacie. Jakikolwiek program wgrywam temperatura na wyświetlaczu -0 lub -1. Jako że to moje pierwsze podejście do tematu i nie mam bladego pojęcia o...
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 spada, niemożliwe, żeby w ciągu 10 min spadło o 4hPa. W czasie...
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] '----------------------- '| Test modułu BMP085 | '----------------------- 'Uwaga: pomiar jest...
Przykładowy programik, ale dla DS18B20: Dim Bd(9) As Byte 'tablica Dim T As Integer 'zmienne Dim T1 As Integer Dim T2 As Integer Declare Sub Read18b20 'deklaracja procedury Cls 'inicjacja wyświetlacza Deflcdchar 0 , 6 , 9 , 9 , 6 , 32 , 32 , 32 , 32 'def. znaku stopnia Cls Lcd "Temp:" Do 1wwrite &HCC 'rozkaz SKIP ROM 1wwrite...
Raczej interesuje mnie odczyt na bieżąco i gdy napotka na przecinek, to żeby program "wiedział", że to był koniec pierwszej zmiennej, a jeśli już nie będzie przecinka na końcu podanych zmiennych, tylko znak "ENTER" to zakończenie wprowadzania ;) Tylko prosiłbym o konkretniejsze info, gdyż dopiero rozpocząłem edukację bascomową ;) Czy te dane odebrane...
Za końcem programu: Nazwatablicy: data 'wartości kolejnych kolumn oddzielone przecinkami Odczytujesz poleceniem lookup. Np.: For X = 0 To 4 cyfra z 5 kolumn Portb = Lookup(x , Cyfra) Waitms Czaskol Next Portb = 0 'kolumna odstępu Waitms Czaskol Zauważ, że tu zmienna "cyfra" decyduje z ktorej tablicy odczytamy dane. ;)
O jakie funkcje chodzi ? O funkcję która w zależności od parametru - jako rezultat działania ustawia (lub odczytuje) wartość odpowiedniego PINU i odpowiedniego PORTU. W sumie powinny być dwie funkcje - jedna do odczytywania, druga do zapisywania PINU/PORTU.
... To wiem ale jeżeli się nie zna składni to już nie jest takie proste Mogę to napisać np. w paskalu w 30s ale tego nie wcisnę w 2052 A mówi się , że Basic jest pamięciożerny :wink: Poniżej programik dla matrycy 4x4 na P1 . Pozdrawiam Piotrek Bardzo dziękuje Piotrek umieszczę to jako listing ****************************************...
Witam Czy obliczanie CRC dla DS18B20 wygląda tak samo jak dla DS1990 ? Czy poniższe kod (dla DS1990) będzie też działał z DS18B20 ? Czy wystarczy tylko zmienić dane w tablicy i kod zadziała? Może ktoś ma działający kod CRC dla DS18B20 ? Dim Ar(8) As Byte Dim Crc As Byte 'Suma CRC Dim Crcp As Byte 'Zmienna pomocnicza dla CRC For I = 1 To 8 Ar(i)...
Declare Sub Read1820 'deklaracja podprogramu Declare Sub Temperature 'deklaracja podprogramu Dim Bd(9) As Byte 'deklaracja tablicy zmiennych Dim I As Byte , Tmp As Byte 'deklaracja zmiennych używanych przez program Dim T As Integer , T1 As Integer 'deklaracja zmiennych używanych przez program 'Dim X As Byte 'deklaracja zmiennych używanych przez program...
Oczywiscie, ze mozesz to zrobic w ten sposob: if key_id(4) = id(4) then 'DOSTĘP OK else 'BRAK DOSTĘPU end if ale wtedy porownujesz tylko czwarty element obu tablic, a nie cala tablice, choc pewnie chciales tu tylko wstawic przyklad... :D Napisalem prosta funkce Dim D As Byte {...} Function porownaj_klucze() As Byte...
Z tym że czas propagacji 93 jest 10-70 ns, 42 10-30 -razem może być 20-100 ns. Trzeba sprawdzić czas reakcji atmela na przerwanie. Jak za szybko zareaguje to da odczyt poprzedniego wyświetlacza. Przeważnie na poczatku procedury obsługi przerwania zrzucane są wszystkie rejestry - choć nie jetem pewien jak w BASCOM-ie, podejrzewam, że też. To będzie...
Z tym, że tablice musiałbym wcześniej wpisać w program, a mi chodzi o to, by "uczyć" tego robota danego zadania. Jeśli zmieniłbym odległośc punktu A od B i znowu postawił przeszkode, w którą by robot uderzył, to wtedy ponownie musiałby zapamiętać nową trase. Przy czym jeśli działałbym w obrębie pamięci RAM, kasowałbym ją po prostu resetem zasilania....
Witam ! Projektuję przetwornik do sterowania obciążeniem elektrowni wiatrowej, potrzebuję stworzyć tablicę zmiennych odwzorowującą charakterystykę turniny wiatrowej w zależności od prędkości wiatru, na podstawie odczytywanej a A/C zmiennej typu word, na wyjściu będę generowałodpowiedni PWM. Chodzi o to by po otrzymaniu liczby np. 127 do rejestru compare1a...
Witam! Od pewnego czasu usiłuje napisać program do obsługi zegara na pcf8583 i wyświetlaczach siedmiosegmentowych lecz bez efektu. Jest sporo tematów tego typu, ale większość zegarów realizowana jest na LCD. Główny problem polega na wyświetleniu czasu na wyświetlaczach 7segmentowych. Proszę o jakąkolwiek pomoc i podpowiedzi. Schemat układu: Program:...
To teraz 2 testy: 1. Przypisz dane z tablicy najpierw do zmiennej tymczasowej a potem wyślij zmienną tymczasową na portd 2. Poprzez Select Case Nr_Wysw na sztywno wyślij na port odpowiednią wartość dla konkretnego wyświetlacza (bez odczytu z tablicy)
witam ponownie ,oto cały kod: [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 1000000 Config Kbd = Portb , Debounce = 40 Config Sda = Portc.0 Config Scl = Portc.1 Config Pind.0 = Output Config Pind.1 = Output Config Pind.2 = Output Config Pind.3 = Output Config Pind.4 = Output Config Pind.5 = Output Config Pind.7 = Output Set Portd.7 Config Timer0...
Witam, Na własne potrzeby chciałem zbudować monitor temperatury z 4 dallasami 18B20. Dane są odczytywane z czujników po RS485 i wysyłane do mastera. Kiedy odpytuję czujniki po kolei, muszę czekać standardowe 750ms na odpowiedź każdego z nich, co nie zadowala mnie. Zależy mi na tym, aby po wysłaniu komendy odpytującej, każdy z czujników bezzwłocznie...
Dlaczego pomnienie dostał przecież zadał normalne według mnie pytanie prawdopodobnie trzeba tworzyć stałą tablicę i odczytać dane z niej uważając by w międzyczasie nie została nadpisana
Witam. W temacie mikroprocesorów jestem dalej początkującym, i dlatego zwracam się do was z prośbą o pomoc. Nie będę ukrywał, że porwałem się kolejny raz z motyką na Słońce, ale dla mnie tylko takie wyprawy są cenne. Jednak przechodząc do problemu. Wydaje się być błahy, ale siedzę całą noc nad tym programem, i może nie potrafię trzeźwo myśleć. Funkcja...
1. Niepotrzebnie wysyłasz &H55 (Match Rom) - 1wverify robi to automatycznie Czyli w dwóch miejscach ( dla każdego czujnika ) mogę to usunąć ? 2. Po co dwa razy zczytujesz dane z każdego termometru? Połącz raz odczytane dane z zmienną 16 bit. 3. Nie wiem do czego wykorzystujesz potem zmienne, ale czy na pewno potrzebujesz przechowywać dane aż w 3 miejscach...
Właśnie mam jedną zmienną , która jest indeksem i ostatni index zapisany jest w eepromie też za pomocą jednego przycisku czyli tak Freg = Freq_EEPROM Tu masz przykład konfiguracji eeprom dla array; wpisu i odczytu wartości z indexem. Dla ułatwienia posłużyłem sie automatycznymi pętlami 'for..next' z incrementacją zmiennch wewnątrz pętli. e marcus
Masz 2 opcje: 1) użyj poradnika gdzie krok po kroku opisano komunikację i napisz własny program 2) skopiuj gotowca w asm i jakoś połącz ze swoim programem. Gotowiec nie obsługuje kart SDHC i umożliwia tylko najprostszy zapis i odczyt danych na karty SD i MMC (zapis/odczyt 1 bloku). Gotowiec jest w pełni samodzielny, nic więcej nie potrzeba --------...
Np. druk czcionek - nie robiłem bufora przechowującego cały napis w formie pikseli, a po prostu drukując każdą linię odczytywałem dane na bieżąco z tablicy czcionek. Wcześniej pisałeś coś o połączeniu przez RS232. Obrazki można kompresować różnymi metodami, zawsze można dołożyć pamięć zewnętrzną na nie (np. eeprom, jeśli ma to być zmieniane częściej...
Obecnie taki odbiór rozwiązuję inaczej, ale w Twoim wydaniu coś czuję że to nie odbiór danych przy taktowaniu 16MHz zajmuje dużo czasu a bardziej wyświetlanie tego na LCD. Jeśli by Ci to odpowiadało to możesz: odebrac dane, i zrobić z nich tą tablice stringów po czym ustawić jakąś flagę "Refresh_lcd" Potem w każdym przejściu pętli wyświetlać/odświeżać...
Działa cały program. Tak jak pisałem wcześniej problem polegał na tym że program w pętli głównej nie nadążał z odczytem zawartości tabeli danych. W symulatorze działał, nie miałem żadnych skoków przysłowiowe maliny ale na płytce już nie. Myślałem że jest problemem jest program w pętli głównej a konkretnie odczyt danych przez LOOKUP a okazało się że...
tablica powinna mieć 9 elementów, ewentualnie powinno być : Bd(1) = 1wread(2) skoro nie używasz pozostałych danych odczytanych z czujnika
Przepuszczanie 3A przez pojedynczy styk goldpin to nie za dużo? Teraz to działa, ale z upływem czasu rezystancja styku wzrośnie i może się to zemścić. To przy zapalonych wszystkich LEDach. Zazwyczaj świeci się około 70% przy wyświetlaniu tekstu. Poza tym 3A to nie jest jakiś powalający prąd. Niestety, ale z forum DIY powoli robi się stragan. A widzisz...
Witam Sprawa prosta. Rozwiązać problem można na kilka sposobów. Ja robiłem tablicę 16-to elementową i w pętli z każdym zboczem sygnału zegarowego wpisywałem wartość do tablicy. Po odczytaniu 16 bitów czytałem te komórki, które mnie interesowały i sumowałem wynik z odpowiednimi wagami bitów. Poglądowy program poniżej. Config Pinx.x : Clk alias Portx.x...
Jeżeli między znakami masz jedną kolumnę odstępu, to na pierwszej stronie będą dwie, a nie jedna kolumna z drugiego znaku, no ale to szczegół ;) Nie wiem, jak masz zapisaną "czcionkę". Jak na moje oko, to może być po bajcie na każdą linię i takich linii 7, jedna po drugiej, potem następny znak itd. Nieużywane bity (te z prawej, znaki wyrównane sa do...
Staram sie zmusci do wspopracy LCD od 3310 na SPI oraz PCF8544 (zegar RTC) na i2c do wspopracy razem z mega8535. Osobno wszystko smiga, razem nie chce. Jak tylko wlacze linijkie odpowiedzailna za skok do procedurki odczytu godziny z PCF'a to wyswietlacz od noki robi sie bialy i nci nie wyswietla. Program wyglada tak (wycialem deklaracje procedur, deklaracje...
Witam, "Zumek" dzięki jednak pytanie nie dotyczyło odczytu danych z tablicy :) (odczyd dokładnie tak wykonywałem) "ASMnauka" Dzięki super działa !! :) a wystarczyło też dopisać wykrzyknik wcześniej !.org $2000 (aż się dziwię że tego nie sprawdziłem) Ten temat uważam za zamknięty Mam jeszcze jedno drobne estetyczne pytanie. Jak wpisać poprawnie adres...
Witam. Znamy sie juz z mojego wczesniejszego tematu :) gdzie pytalem o cos podobnego ale dla jezyka C. Z racji braku supportu dla polaczenia 1wire-8051-jezykC postanowilem wykonac zadanie w BASCOMIE dla 8051. Usiadlem przerobilem troche kodu z C i oto efekty: $crystal = 12000000 Wysw Alias P2 'a-h W1 Alias P0.1 ' 3 anody dla 3 wyswietlaczy W2 Alias...
1) Dokładnie tak chciałem zrobić, czyli przerwaniem INT0 wykrycie zbocza narastającego i uruchomienie TIMER0 do obliczenia „czas” i od razu z automatu stany niskiego „czas” x 7. Czyli 4 bity poskładane w bajt synchronizacji i tym otworzyć „bramę” do odczytu pozostałych które są tworzone w ten sam sposób. Tylko za...
Witam chciałbym prosić o pomoc w korekcji programu napisanego w bascomie. Skonstruowałem tablice o rozdzielczości 8x80 pikseli na której są wyświetlane: zegar temperatura, imieniny. Chodzi mi o to żeby przystosować tablice do wyświetlania nazw przystanków tak jak jest to rozwiązane w komunikacji miejskiej. Chciałbym aby był do tego sterownik z wyświetlaczem...
Cześć, witajcie. uruchomiłem komunikację dwóch atmeg po spi. w bascomie z pominięciem wbudowanych komend, tylko na rejestrach procesora. hardwarowo wszystko chodzi, dane sie przesyłają w obie strony z jednym dużym problemem. drugi dzień nad tym siedzę i mam już kwadratowy łeb. potrzebuję przesyłać tabele, których specyfika jest taka, że nigdy nie wystąpią...
Witam, Panowie na poważnie wziąłem się za TWI Slawe ale za pomocą własnej obsługi w Bascomie. Na podstawie szukajki na elektrodzie i kilku postów kolegów zdaje się szymtro i robiw udało mi się w końcu zrobić to aby AVR zaopatrzony w sprzętowe TWI grzecznie odbierał przesyłane do niego bajty. Zrobiłem to tak: Twar = &B10000000 'Adres=128, jeśli chcesz...
Witam, W moim programie umieściłem dane typu LONG w pamięci EEPROM $eeprom 'dane do zapisania w EEPROMie Data 0 ' nie uzywany bajt Tab_czas1: Data 0& , 1& , 2& , 60& , 61& , 75& , 1275& , 1455& , 1456& , 1457& , 2000& , 2001& , 2002& , 2060& , 2061& , 2075& Data 3275& , 3455& , 3456& , 3457& , 4000& , 4001& , 4002& , 4060& , 4061& , 4075& , 5275&...
W ogóle skoro nie potrafisz odczytać tego co napisałem wyżej to znaczy że do końca nie rozumiesz co to tablica. Wyjaśnię najbardziej łopatologicznie. Wyobraź sobie, że tablica to pociąg z wagonami od 1 do 8. Każdy wagonik może przewozić daną liczbę. A cały pociąg ma swoją nazwę np. pociąg "Kopernik" Więc. Ds1(1)=9 Oznacza, że mamy tablicę o nazwie "Ds1",...
Udało mi się trochę odchudzić program. Wykorzystałem tablice + inkrementacja numeru komórki w tablicy. Chciałem wykorzystać FOR - NEXT, ale coś nie działa jak trzeba Do Locate 1 , 1 Lcd A Locate 1 , 7 Lcd B Locate 2 , 1 Lcd C Locate 2 , 7 Lcd D Locate 1 , 13 Lcd E Locate 1 , 19 Lcd F 'If Szukaj = 0 Then Call Przeszukaj_i2c 'End If Loop End '***********************...
Witam. Chciałbym odczytać temperaturę z czujnika DS18B20 przez długie i krótkie migania diodą. Np gdy mamy temperaturę 25 stopni to dioda sygnalizowała by dziesiątki za pomocą dwóch długich piknięć a jedności poprzez 5 krótkich. Dopiero zaczynam zabawę z Bascomem i kompletnie nie wiem jak się za to zabrać. Poniżej wklejam fragment kodu z odczytem temperatury....
Cze ! Nie widzę potrzeby stosowania tablic w tym projekcie. Wszystko da się ładnie upchać w pętle For...Next. Co do obliczania adresu w EEPROM to też jest bardzo prosty sposób: nrobrazka=0 For polowka=0 to 1 'ustaw polowka LCD For strona=0 to 7 'ustaw strona LCD For kolumna=0 to 63 'ustaw kolumna LCD adresEEPROM=nrobrazka*1024+polowka*512+s...
Zaprogramowalem procek. Oto spostrzezenia. Zegar odlicza poprawnie czas, ustawienia godziny dzialaja poprawnie. Wystapil natomiast problem z miganiem kropki oddzielajacej jednostki godizn od dziesiatek minut. Powinna ona zapalac sie na sekunde, a potem gasnac na sekunde. Jednak okazuje sie, ze w trakcie sekundy, w ktorej powinna sie swiecic, ona migocze....
Potrzebuje emulator DS18B20 na atmega8 - mam na PC program do odczytu temp i chciałem w tym programie dodac inne parametry ( np wilgotnosc ) ale nie zmieniajac programu - w scrachpadzie bede wisyłał inne dane nie temperature. ( w bajtach temperatury lub bajtach uzytkownika wolnych 2szt) Aktualnie używam "lampomitari" , ale napisalem przeróbke programu...
Witam! Z racji tego że nie można tworzyć tablic wielowymarowych w Bascomie proszę o pomoc w rozwiązaniu mojego problemu. Potrzebuje (w sterowniku czasowym - tygodniowym) przypisać do 10 czasów załączania i wyłaczania oraz sterowania dla każdego dnia tygodnia. Nie mama pojecia jak to rozwiązać. Z grubsza do pamięci eeprom musze zapisać: Bit_X, D_tyg,...
Manual BASCOM-a, w opisie instrukcji SERIALIN mówi że bufor danych wejściowych przechowywany jest w wewnętrznej tablicy bajtów _RS232INBUF0 . Oprócz tego są dwa wskaźniki, na początek tych danych oraz na ich rozmiar. 'Using the CONFIG SERIAL=BUFFERED, SIZE = 10 for example will 'use some SRAM memory 'The following internal variables will be generated...
Witajcie. Skusiłem się napisać ponieważ po tygodniu walki stwierdziłem, że już więcej nic nie wymyślę. Otóż chciałbym zbudować w oparciu o procesor atmega nadajnik IR który nada wybrany kod w określonych odcinkach czasu. Otóż korzystam z programu MKdecoder firmy atnel, który w bardzo fajny sposób dekoduje sygnały IR z dowolnego pilota przedstawiając...
Dokładniej Zbyszek Rabee. Napisała sporo programów a nie wiedział co to stos i do czego służy. W sumie co w tym złego? Czy świadomość budowy procesora ma wpływ na funkcjonalność programowania? I jego zawieszania, bo stos był zbyt mały. AVR to nie Unix gdzie domyślnie w uruchamianych taskach stos był ustawiany na 8kB. Ile AVR ma 8kB? W Arduino piszesz...
No ładnie odczyt działa perfect. Niech mi ktoś jeszcze powie jak się w bascomie AVR robi tablice z danymi zapisywaną w pamięci programu bo jak robię tak jak w pomocy pokazano lub tak jak w 51 to nie chodzi :(
A jak zrobisz długi i krótki impuls? (no bo z takich imp. skałada sie każdy znak) ja bym odczytał każdy klawisz i każdemu przypisał komendę : If znak (np. A) then Set Portb.0 Reset portb.0 waitms 50 (krótki) Set Portb.0 waitms 8 (przerwa dla odczytu A) Reset Portb.0 waitms 90 (długi) Set Portb.0 End If Tak czy inaczej...
VCO to oscylator przestrajany napięciem. Jakie przebiegi to cudo ma generować ?. Sinuska, fale prostokątną czy coś innego ? Jaka maksymalna częstotliwość ?. To zadanko ze szkoły ( bo może da się zrobić lepsze rozwiązanie). Na szybko jak ja bym to zrobił - pod ADC podpiąć strojenie napięciem. Cyklicznie odczytywać wartość i umownie zamieniać ją na częstotliwość...
Witam szanowne grono forumowiczów. Od pewnego czasu borykam się z problemem konfiguracji SPI. Mam połączoną jedną atmegę8 jako master i 4 jako slave w sprzętowym SPI. Cztery atmegi pracujące w trybie slave zajmują się obsługą wyświetlaczy ledowych (dla każdej atmegi 4 8 segmentowe wyświetlacze obsługiwane multiplekowo). Obsługa samych wyświetlaczy działa...
Dzięki za podpowiedz. Już to sprawdzam. Edit: Jak podałeś w stringu były dane LF na początku odczytanego stringa i dlatego był problem z tłumaczeniem zmiennej. Dzięki za naprowadzenie! Jeszcze wątku nie zamykam, gdyż mogę jeszcze trafić na problem i w razie czego szkoda zakładać nowy wątek. Pozdrawiam Edit2: Niestety powracam z problemem :( Program...
Witam. Zakładam nowy temat ponieważ szukałem informacji na ten temat lecz nie znalazłem odpowiedzi. Chodzi o wprowadzania liczb 2 cyfrowych z klawiatury matrycowej. Do odczytu klawiszy wykorzystuję instrukcję "Getkbd". Nie wiem jak dokonać odczytu ile razy został wciśnięty klawisz. W celu wprowadzania liczb wielocyfrowych z klawiatury. Za pomocą zmiennej...
Witam. Chciałem zrobić sterownik wzmacniacza audio na bazie kitu AVT2829. Szczególnie zależy mi na uczeniu się dowolnego pilota. Zrobiłem płytkę przystosowałem do niej program, użyłem większego procesora (atmega8) no i program działa ale strasznie ułomnie. Procedura zapamiętania kodów z pilota przebiega jak należy ale już samo działanie jest strasznie...
jak sie robi tabele danych w bascomie, bo musze w nim napisac progeam. chodzi o to, zeby np dla zminnej 1 odczytywał pierwsza cyfre z tabeli dla 2 druga itp czyli np jest data 15,20,18,17 i ma byc wynik f(1)=15 f(2)=20 f(3)=18 f(4)=17 jak sie wogole uzywa tutaj tablic?
A więc wniosek , że program to jedno , a sprzęt to ... drugie :D Heh ..no niestety a ja jakos olalem stroen sprzetowa myslac ze na defaultowych ustawieniach powinno smigac ;) Czyli telefon wysyła echo. W takim raznie niestety wysyla ...i wylanczyc sie go nie da ..bo nie przyjmuje ATE=0 ..... Bufor ..in , czy ..out jest buforem tzw. kołowym. mam rozumiec...
Aha, to juz mniej wiecej wiem o co biega :) a np. ten fragment gdzie kopiujesz dane do ramu: Sinus(k + 1) = Lookup(k , Tab_sin) , nie mozna bezposrednio czytac danych z pamieci programu , trzeba je kopiowac do ramu ?? Nie pamietam za bardzo polecen z BASCOMa , funkcja LookUP odczytuje po prostu dana o indeksie k z tablicy Tab_sin tak ?
Witam! Dziwny problem. Dlaczego? Zobaczcie. $crystal = 12000000 $regfile = "89c2051.dat" Config Scl = P3.0 Config Sda = P3.1 Reset Tcon.0 Enable Interrupts Enable Int0 On Int0 Odczyt Const Adresw = 160 'adres do zapisu układu 2404 Const Adresr = 161 Dim P As Bit , A As Byte , X As Byte , Y As Byte , I As Byte Dim Z(10) As Byte Kbdclk...
No chyba, że dane generujemy w biegu (np pomiary) i ich nie modyfikujemy tak wlasnie o to chodzi atmega 8 ma tylko zapisywac na czystej karcie wyniki z pomiaru - nic nie bedzie modyffikowac tylkow puste miejsca bedzie zapisywac jeden pomiar nastepny juz w innym miejscu W pętli zapisu zamiast pobierać dane z tablicy trzeba wykonywać pomiar i w biegu...
Odczytuje z 1wire kolejno 9 bajtów danych do tablicy. Temperatura to liczba 16bitowa, pierwsze 8 bitów zapisanych jest w 1 elemencie tablicy 8 kolejnych w 2gim. Jakim poleceniem mogę połączyć te te dwie liczby aby otrzymać jedną 16bitową? Czy może ktoś ma jakiś inny sposób aby odczytać temperaturę i sumę kontrolną (1,2 bajt - temperatura, 9ty -CRC)...
ok czy w delphi jest jakiś odpowiednik bascomowego make int? bo własnie też staram sie odebrac dane po RS - u mnie jest to 9 bajtów Odbieram metodą mało elegancką na piechotę -korzystam z comport-u i robię to po prostu comPort1.Read(dana1,1); comPort1.Read(dana2,1); itd....... Jeśli teraz zmienną typu dana zadeklaruje jako tablicę to...
Ponownie chciałbym zwrócić się do kolegów z prośbą o pomoc. Chcę zrobić rejestrator czasu, zdarzeń występujących na przerwaniu. Układ miałby zapisywać do pamięci eeprom datę i godzinę wystąpienia zdarzenia. czyli zmienne _mies, _dzień, _godz, _minuta Myślę sobie tak. Skoro mam serie danych składającą się z czterech zmiennych więc muszę zarezerwować...
Otóż ten "adres" nie przesuwa o bajty, ale o długość zmiennej. Czyli jak masz Word to przesuwa o 2 bajty. Ale zawsze jest to wielokrotność 8 bitów. I przypuśćmy że nie jest istotne czy przesunie o długość zmiennej byte czy o długość zmiennej word... Jeżeli więc odczytujesz do zmiennej typu Word, to Lookup zawsze będzie odczytywało po 2 bajty. ...ale...
Witam! Usilnie próbuje opracowąć protokół komunikacji miedzy wieloma węzłami w sieci RS485 multimaster. Ramka wyglada tak: 1 bajt - długosć ramki 2 bajty - adres odbiorcy (word) 2 bajty - adres nadawcy (word) x bajtów - dane właściwie 1 bajt suma kontrolna z wszystkich poprzednich Transmisja odbywa się na prędkosci 19200bps przy użyciu transcieverów...
to jest scan code w hex, więc przeliczasz na dec, czyli 5a(hex) = 90(dec), zgodnie z dokumentacją bascoma dodajemy do tej wartości 1, czyli na 91 pozycji w tabeli data znajduje się kod klawisza enter, u mnie 13, możesz sobie to policzyć. co do klawisza del to 71(hex) = 113(dec), czyli kod klawisza wpisujesz na 114 pozycji w tablicy, czyli ostatnia linijka,...