Czy jeżeli w Bascomi-e, w przerwaniu, ............ ......... czy zapis będzie trwał, a procesor w tym czasię będzie już wykonywał inne rozkazy? Zapisywana jest zmienna bajtowa. Wpis wartości zmiennej do EEPROM nie odbywa sie samoczynnie, jak powiedzmy przesączanie wody przez lejek(!). Tego wpisu dokonuje processor; nie ma tam pośrednika (chyba jedynie...
Mam tyle zaległej pracy , że nie mam czasu dogłębniej tego opisać. Przecież kolega napisał wyraźnie, ze kiedy załaduje obrazek do Flash mikrokontrolera to mu się wyświetla. Możemy chyba temat podłączenia LCD pominąć? Sprawa ma kilka aspektów i dlatego pewnie nie jest pokazywana w co drugim tutorialu :P Po pierwsze trzeba zrozumieć że dołączenie obrazka...
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....
Dzięki za zainteresowanie. Niby to w miarę proste a jednak ... portb=&B00000000 - wcale nie oznacza stanu spoczynkowego "0" dla pinów tego portu. Oznacza to, że piny tego portu są w stanie wysokiej impedancji ( HiZ), możesz to traktowac tak jakby były nie okreśone i bedą reagowc na przypadkowe sygnały pojawiające sie na wejściu, również te powodowane...
A może bardziej sensowne byłoby: [syntax=basic4gl] If S = 0 And PIND.7 = 0 Then port = portc End If [/syntax] e marcus
Dlaczego pokazuje -1 na wyświetlaczu a nie np 255 jak jest dla zmiennej typu Byte. Bo Integer to zmienna ze znakiem, FFFF to właśnie -1. Byte jest zmienną bez znaku (zawsze dodatnią). Dwubajtowa zmienna bez znaku to w Baskomie "Word". Na wyświetlaczu po resecie będzie wówczas 65535. 2. Czy taki zapis eeprom będzie poprawny przy pierwszym sprawdzeniu...
Ile zadeklarowałeś HWstack SWstack i Framesize?
Jakiś użytkownik też miał z tym kiedyś problem, rozwiązał to w taki sposób: Pinb.0 = 0 ' pin RW Waitms 100 Initlcd Nie sądzę, że jest to potrzebne, gdy pin został skonfigurowany w config lcdpin . Co z tą częstotliwością? W symulatorze raczej jest podany czas wykonywania kodu (sprawdź bez $sim ). Nie podałeś, jaki masz kod, ile się wykonuje na mikrokontrolerze,...
http://www.elektroda.pl/rtvforum/topic14...
Spróbuj do każdej wartości dodać znak % na końcu: [syntax=basic4gl]Data 7848% , 7748% , 7652% , 7559% , 7468% , 7380% , 7294% , 7211% , 7129% , 7048% [/syntax]
Witam. Zapis (składnia) Load Timer1 jest zły. Sprawdź w pomocy Bascoma.
Nic to nie zmieni. I tak, i tak liczby będą zapisane w pamęci dokładnie tak samo. p.s Tylko skąd wzięło się to 576?
Wyjątkowo nie chce mi się czytać kodu, ale musisz wiedzieć że karta ma swój wewnętrzny sterownik. To nie jest zwykła pamieć adresowalna. Ten sterownik ma zaimplementowany wear leveling co w skócie dla Ciebie oznacza że szanuje komórki karty i wybiera do zapisu te które były użyte najdawniej. Chodzi o to by nie zapisywać ciągle w tych samych komórkach...
... W ten sposób mogę skakać po całej pamięci. Po każdym zapisie bajtu jest przerwa 10ms. Myślę, że podobnie można to zrobić w Bascomie. Policz ile czasu zajmie prockowi zapisanie 8192 bajtów(24c64).Spoko można się zdrzemnąć :D Piotrek PS O pamięci 24c1024 , wogóle nie wspomnę :(
Schemat poprawiłem. Zmieniłem w pierwszym poście. Faktycznie, aż miło popatrzeć. Sam czasem się wkurzałem szukając ścieżki. Jeszcze tylko przydałyby się wartości użytych elementów, a nie ma ich żaden z elementów pasywnych :)
Próbowałem 200kHz, 100kHz, 50kHz. Za każdym razem efekt ten sam. To może spróbuj zajrzeć do PDF-ka tej pamięci i zainteresuj się mechanizmem PAGE WRITE, bo to on jest źródłem Twoich kłopotów.
http://obrazki.elektroda.pl/3089511800_1... Witam, dziś prezentuje swój bezprzewodowy termometr pracujący na częstotliwości 433 MHz. Urządzenie składa się z nadajnika i odbiornika. Nadajnik odczytuje temperaturę pieca C.O. i wysyła ją do odbiornika. W odbiorniku mamy możliwość ustalenia górnego i dolnego progu załączenia alarmu, który...
Chodziło mi właśnie o systematyzowanie komórek po 4 żeby przy odczycie nie rozjechały mi się adresy. Zgadza się Właśnie o to mi chodziło Macie rację warto poświęcić jedną komórkę na wskaźnik. Właśnie tego mi brakowało Jeszcze nie wiem jak to zrobię, przede mną cała noc zabawy, dam jutro znać jak się udało , ewentualnie na czym utknąłem. Nie potrzebujesz...
Właśnie o to mi chodziło. Przeglądałem to polecenie w wersji [syntax=c] Config Clock = soft [/syntax] ale tam była informacja, że potrzebny jest Timer, a ja już wolnego nie mam. Wystarczyła zmiana nazwy podprogramu do odczytu czasu i dopisanie zmiennych tak, jak Kolega podał i już. Działa jak trzeba, czyli przy odczycie karty SD w komputerze jest poprawna...
Post wyżej napisałem jak ma wyglądać wyświetlanie tekstu. Wstaw tą linię tam gdzie umieściłeś komentarz "Tu wstawiam..." :) ps. Pisałem z pamięci i zamiast Seq(1) = Text powinno być Seq(1) = Tekst czyli zapisanie aktualnej wartości po przesunięciu.
Konwersje byte->string otrzymuje się przy użyciu funkcji Str. W drugą stronę działa funkcja Val.
Problem ze zmianą nazwy pliku rozwiązałem - oczywiście należy pamiętać, że nazwa pliku może być ośmio znakowa. W kodzie dodałem: Plik = "temDD_MM" + ".txt" Mid(plik , 4 , 5 ) = Data_plik oraz w odczycie czasu Data_plik = Bcd(dday) + "_" + Bcd(mmonth) oraz zmieniłem wpis zapisu Open Plik For Append...
A jak to niby ma wykrywać kiedy się urządzenie wyłącza (czyt. odcina zasilanie, tak?) Albo dajesz zasilanie bateryjne i watchdoga + zapis zmiennych i przejście w power down przy wykryciu power failure, albo zapisujesz zmienne co jakiś czas, np. nastawy po zatwierdzeniu przez użytkownika klawiszem.
Witam Zapisuje na karcie SD współrzędne otrzymane z GPS. Generalnie zapis jest OK, ale jako, że lubię porządek, chciałem zapisywać w podkatalogu rok/miesiąc. Robię to tak: [syntax=basic4gl] Sub Write_to_sd: Sd_month = Str(miesiac) Sd_year = Str(rok) Call Gettime Ciag_gps = Data_pcf + " " + Czas_pcf + " " + La1 + "." + La2 + "," + Lak + " , " + Lo1 +...
"Lcd ; Czas_2" Czy średnik po LCD to prawidłowy zapis?
Zerknij do mojego tematu o .[url=http://www.elektroda.pl/rtvforum/t... pogodowym. Zamieściłem tam cały kod obsługi kart SD. Karta może być pusta. Program sam utworzy stosowny plik do którego będzie zapisywał dane. Pozdrawiam.
... Adres musi być dobry skoro zapala diody i gasi lecz odczyt daje wynik 255 A czy ja napisałem, że masz zły adres :?: Powtarzam, przed wysłaniem adresu do odczytu, użyj sekwencji START lub REPEAT START.
Czas zapisu Eepromu wynosi typowo 2,5-4ms. W tym czasie nie powinny byc dokonywane zadne inne operacje na pamieci Eeprom. Informacja o zakonczonym zapisie znajduje sie w rejestrze Eecr (bit 1). Wyzerowanie tego bitu = koniec zapisu Po instrukcji writeeeprom mozesz dac polecenie: bitwait Eecr.1, reset wtedy program bedzie zatrzymywany jedynie na czas...
Dołożyłem mu obsługę zegara PCF8563 i wyrabia się do 4 zapisów na minutę. A zapisuje: data, czas, współrzędne xx xx xxx N współrzędne xx xx xxx E prędkość Podobno przy zapisie na kartę trzeba mieć zegar, bo inaczej występują problemy.
AVR ma mało pamięci RAM więc pozostaje ci odczyt pojedynczych bajtów/słów z pamięci i wrzucanie ich do LCD. Ja używam pamięci EN25F16. Są bardzo szybkie(100MHz), pojemne (16Mb)i nie są skomplikowane w obsłudze. Do zmiany bmp na bgc skorzystaj z programu LCDconvert z pakietu BASCOM.
Powinno być: [syntax=basic4gl]Print #2 , Godziny ; ":" ; Minuty ; " PIEC-" ; Ts ; " BOJLER-" ; Tb[/syntax]
Dzięki za odpowiedzi, taki czas jest dla mnie idealny, nawet "potrojony" mnie zadowala :) Teraz pytania bardziej konkretne. Wstępnie będzie to Atmega128, pamięć typu 628512 podłączona zgodnie z helpem bascoma. Wg. dokumentacji, mogę "sprzętowo" obsłużyć 64kb, czy przejdzie taki myk, by podzielić 512kB SRAM na 8 banków i sterując je adresami A16-A18...
nie mam biblioteki TWI, tylko I2C Slave na AVR( chociaż zastanawiam się teraz czy przypadkiem nie była na '51 i nie próbowałem jej z AVR - musze to sprawdzić, bo zdarza mi się czasem robić różne głupoty ) z programową obsługą miałem na myśli Bascoma. czy pisze się tak samo jak bez TWI, a kompilator załatwia resztę, rozpoznając istnienie TWI i kompiluje...
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 Owszem pamięć komunikuje się za pomocą magistrali I²C. Bascom ma wbudowane procedury obsługi takiej magistrali więc nie powinno być większych problemów. Warto przeczytać kilka razy helpa, żeby zrozumieć jak tą magistralę obsługiwać. Nie jest to skomplikowane ale zrozumienie tego ograniczy ilość nerwów, przekleństw i czasu. -- pozdrawiam
Skoro program utyka w jakimś miejscu to znaczy że czekasz w pollingu na stan, który się nie pojawia. Po pierwsze dodałbym time out, który przerwie pętlę oczekiwania zanim układ zostanie zresetowany przez watchdog. Dodatkowo w przypadku wystąpienia takiego timeoutu trzeba by obsłużyć jakoś błąd magistrali: http://obrazki.elektroda.pl/2162467700_1...
Przy zapisie do EEPROMU w Bascomie nie musisz wyłączać przerwań. Funkcja WRITEEEPROM robi to sama, ale READEEPROM już nie wyłącza przerwań :)
Po pierwsze :) , tak jak kolega już mówił: "obsługa wyświetlaczy powinna być zrobiona w przerwaniach". Po drugie, jak na mój gust ;) funkcja Writeeeprom w Bascomie jest lekko skopana. Funkcja zbyt wcześnie wyłącza przerwania np. przy takim kodzie: [syntax=basic4gl]Writeeeprom A , 10 Writeeeprom B , 11[/syntax] Pierwszy zapis do eepromu wygląda tak:...
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 PWM liczą też w obie strony. Patrz nota katalogowa. Jak...
To zależy od odbiornika i jego konfiguracji. Większość fabrycznie jest tak ustawiona, że od razu wysyła dane. Czasem wymagane jest jeszcze podanie napiecia na odpowiednie wejście, nazwijmy je "Enable" (nazwa przykładowa, o ile takie wejście jest...)
czasem nie jest to transmisja radiowa RDS ?
Czyli jeżeli bym chciał napisać program w Bascomie zapisujący na kartę sd odczyty z wewn. ADC to nie mam co liczyć na lepszą częstotliwość próbkowania niż te uzyskane 3,7kHz? No bo wiem że zarówno odczyt z ADC jak i zapis na sd zajmują w Bascomie trochę czasu :cry:
Bascom ma symulator, w którym możesz sobie patrzeć jak ci się zmienna zwiększa. Języki nie przestrzegają ściśle reguł zapisu matematycznego.
No i tu właśnie obsługa przerwania zakłóca komunikację 1W. Jeśli wyłączę przerwania na czas odczytu/zapisu DS-a to wyświetlacz miga. Bascom chyba nie pozwala na takie zagłębienie się w procedury zapisu/odczytu 1W aby można było zrobić to po swojemu.
Hej, Dzielnik zmieniłem i jest przed diodą. Dodanie kondensatora C6 za diodą powodowało, że przy rozłączeniu zasilania mega nic nie zapisywała i zliczała od zera. Podobnie jak wpisanie polecenia RISING. Odlutowałem C6 i zmieniłem polecenie na FALLING. Zamieniłem dzielnik tak jak był na początku a więc 100K i 18K tak aby comparator wyzwalał się przy...
Dzieki Panowie za podpowiedzi ,mam problem z ustawieniem konkretnej godziny bo do pcfka musi byc godzina zapisana w formacie BCD,i jak zastosuje cos takiego Zwiększaj/zmniejszaj binarną , a dopiero po tym rób z tego BCD. H = 21 'dwudziesta pierwsza if pinc.2=0 then incr h end if H=Makebcd(h) 'w H znajdzie sie wartość &H22(binarnie 34)...
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ść 9 a nie 0. Znów gdy dziesiątki sekund mają wskoczyć...
Generalnie to twój problem wynika w dużej mierze z tego, że wywołujesz funkcję z wewnątrz przerwania. To powoduje szczególnie w Bascomie - niestety KOSMICZNE obciążenie w postaci po pierwsze ogromnego i niepotrzebnego zużycia stosu przez co musisz właśnie zacząć się bawić z tymi wszystkimi HWSTACKAMI itp .... zobaczysz jaka bonanza z tym będzie przy...
Używam tej komendy z watchdogiem. Zawartość pamięci pozostaje bez zmian. Zasilanie jest cały czas takie same. Z resztą co za problem sprawdzić samemu?
Witam JAkis tydzień tamu zacząłem uczyc sie programowanei `51 w BASCOMIE. ... Skoro tak , to zapewne często zaglądasz do pliku pomocy Bascoma , czyż nie :?: Zakładając że tak jest , powinieneś zauważyć , że Config Spi , prócz ustawionych przez Ciebie parametrów , ma jeszcze 2 bardzo ważne parametry(które to pominąłeś) , a mianowicie Data order i Spioutedge...
Kolego coś takiego wymyśliłem :[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 wyjścia Config Sda = Portc.1 'konfiguracja pinu magistrali...
Witam. Włącz przerwania, inaczej dane nie wpadną do bufora.
Podepnę się do tematu. Mam takie same problemy z zapisem powyżej 128k w atmega 2560 (Bascom). Zapis niby przebiega poprawnie ale weryfikacja zawsze daje błąd.
000048 9ADA SBI PORTA,PA2 000049 9ACB SBI PINA,PINA3 Czyli zapis idzie tak jak jest w kodzie BASCOMA. Raz do PORTA a raz do PINA. Czyli BASCOM nie poprawia tego kodu. Oczywiście zapis do PINA nic nie da.
mala szansa aby w kilku postach zrobic Ci wyklad ale jak masz 12 linii adresowych tj A0-A11 to wszystkie koncowki musza byc podlaczone w Twoim przypadku najlepiej do portow obu Atmeg czyli w praktyce 2 porty do tego zuzyjesz a 3 do danych jesli chcesz wykorzystac pojedyncze piny danych to tez musisz "zuzyc wszystkie 12 adresow , bez bramek czy dodatkowych...
Kiedyś pewnie zamysł był inny. Kiedy ktoś programował na tylko jeden mikrokontroler to może i ułatwieniem było to, że te ustawienia można ustawić na stałe w IDE. Te ustawienia odpowiadają za zarezerwowanie miejsca w pamięci na stos i przetwarzanie danych. Kiedyś doczytasz. Ważniejsze jest to, że bardziej rozbudowane programy mogą mieć większe zapotrzebowanie...
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...
Myślę, że błąd leży po stronie opóźnienia portu. Spróbuj poeksperymentować wartościami "port delay". Napewno pomoże miałem swego czasu takie objawy i musiałem na różnych kościach zmieniać te ustawienia.
Wazniejszy będzie odczyt na początku i stwierdzenie które dane są aktualne Robisz sume z bufora 1 i porownujesz z zapisana w buforze 1 , tak samo dla drugim buforze i ten z wadliwa suma odrzucasz , gorzej gdy oba maja poprawna sume to wtedy albo na podstawie analizy danych stwierdzasz które są nowsze albo na podstawie indeksu dodanego do danych tylko...
Witam W oparciu o projekt Kolegi _Duch - rejestrator pogodowy zrobiłem swój ( na razie prosty ) rejestrator. Wykorzystałem podane w wątku pliki config_mmc.bas i Config_AVR-DOS.BAS . Na płytce testowej EVB 4.3 v.4 . Podłączenie z SD standardowe. Niestety nic się nie zapisuje na karcie SD ( próbowałem 2 Gb Kingston i 1 Gb Sandisk - formatowane na FAT...
Witam, Jeśli zasilanie płytki z procesorem masz z programatora na porcie LPT to odłącz je i spróbuj zasilić procesor z zewnętrznego źródła (bateria, zasilacz). Pozdrawiam
Zjadłeś przedrostki &B przy wartościach bitowych jaki już z niepohamowaną determinacją chcesz takiego zapisu używać.
Zrobilem cos podobnego, tyle ze zapis na karcie SD. Generalnie problem jest dosc prosty, tylko musisz zrobic bufor (np cykliczny) do odbioru znakow z uarta, bo bedziesz gubic dane. Mozesz zrobic tak, ze odbierasz np 30 znakow i dopiero cala paczke zapisujesz w eepromie, w tym czasie inne znaki sa zapisywane w buforze. Dlugosc bufora musisz tak dobrac...
Pierwsze co rzuciło mi się w oczy po spojrzeniu do datasheet do adresy do zapisu/odczytu. W kodzie masz odczyt-A1, i zapis- A0. PCF8593T korzysta z adresów: odczyt-A3, zapis A2.
Łopatologicznie: Najpierw ładowana jest stara zawartość rejestru odpowiedzialnego za włączanie lub blokowanie przerwań (korzysta z tego np. polecenie ENABLE). Potem włączane jest przyjmowanie przerwań z linii INT4, tak jakbyś wykonał ENABLE INT4. A na końcu nowa zawartość rejestru zostaje zapisana w pamięci procesora. I od tej pory przerwania z INT4...
If Flaga = 1 Then Toggle Portb.2 Else Ten zapis generuje Ci ciąg impulsów na wyjściu, zamiast "toggle" wystarczy "set".
kol. pablo010 przerabiałem sobie ten kod i wywalałem obsługę zegara wpisując stałą wartość. No i istotnie to nie jest do bascoma. Nie używam tego języka i nie posiadam luksusu używania gotowych bibliotek zatem dzięki za kod do analizy ale na nic mi się on zda. Acha nie ja pisałem "czy może się ktoś zlitować" :)
Język nie jest ważny. Polega to na odpowiednim ustawieniu sygnałów na wejściach LCD czyli sterowania rejestru Port. Jak wrócę z pracy to wstawię tu kod napisany w C dla zwykłego LCD ( z lekkim tłumaczeniem). Może uda się to przerobić na Bascom. Wtedy uzyska się dostęp do czasów. Do tego czasu spróbuj wyssać procedurę inicjacji z noty katalogowej. P.S....
ooo aaa eee
Witam. Od jakiegoś czasu noszę się z zamiarem usprawnienia zegara który jest na PCF8583. Ostatnio wpadł mi w ręce odbiornik DCf a właściwie to budzik z uszkodzonym LCD. Przeglądając sieć, znalazłem informacje na temat zegarów z DCF77 z podstawowym czasem na timerach. Chciałbym dołożyć DCF77 do zegara, który ma PCF8583. I tu moje pytanie do Was. Czy...
http://obrazki.elektroda.pl/3368298900_1... Rejestrator temperatury. Zbudowany dość dawno temu (nie pamiętam dokładnie kiedy). Zrobiłem go bo zawsze chciałem mieć coś takiego. Każdego dnia tworzony jest nowy plik w którym zapisywane są temperatury z czujnika. Aby nie bawić się w przyciski (chciałem wszystko zmieścić pod wyświetlaczem)...
Dzięki za odpowied, to chyba jednak będzie procek, bo wszystkie elementy sš zgodne z opisem i nowe (nie z odzysku), płytka też jest oryginalna (z AVT) a procek siedzi w podstawce "precyzyjnej" (ZIF jest droższy od całego programatora...). Jak tylko będę miał czas to kupię drugi i zobaczę...
ok a jak teraz ułożyć te dane do zapisu i odczytu po I2C mając taki kod [syntax=basic4gl]I2cstart 'warunek startu I2cwbyte Adres_save 'wyślij adres układu I2cwbyte 8 'wyślij adres w pamięci EEPROM I2cwbyte zmienna A 'wyślij daną I2cwbyte zmienna B I2cstop 'warunek stopu Waitms 50 'czekamy 10mS ponieważ EEPROM potrzebuje czasu na zapisanie danych w pamięci...
Nie jestem pewny o co tak naprawdę koledze chodzi. Czy to jakoś pomoże? Dim tekst as eram string*30 Najprostszy sposób na zapis stringa w pamieci eeprom. pozdrawiam Tomek
Nie można poprosic uC, żeby w tym czasie zajął się czymś niepotrzebnym (czym?) ale równie obciążającym? Procesor nie wie co jest potrzebne - robi co mu programista nakazał kodem programu (czasem nieświadom co nakazał :-)). Po drodze od programisty do kodu maszynowego (czyli tego co wykonuje procesor) jest jeszcze kompilator i miewa wbudowane opcje...
rezystory są zamontowane w płytce i są to 4,7k jeszcze jedna uwaga: zrobiłem przeróbkę i ustawiłem wartość A=4 i zakomentowałem Incr A czyli wysyła cały czas 4 i odczytuje z pamięci. Wyniki: co jakiś czas otrzymuję w wyniku: 4 i 0, może moje 16MHz ma jakiśwpływ... ale nie jestem w stanie go wymontować z tej płytki i wymienić. Pisałeś że działa u Ciebie....
Witam wszystkich, Mam układ, który po I2C zapisuje mi do pamięci 24c256 16 bajtów jeden po drugim. Robi tak co 3 minuty, procedura wygląda w ten sposób, że odczytuje adres zapisany w 4 i 5 komórce, zwiększa go o 1 po każdym zapisie a potem zapisuje do komórki 4 i 5." W komórce 1 i 2 zapisana jest ilość pozycji, pod koniec procedury zapiszdane wartość...
Ja nie sprawdzałem Twojego projektu pod względem działania, tylko czy działa zapis do eepromu w czasie programowania procesora.
Nie, ale też link jaki podałeś nie powinien być traktowany jako wiarygodne źródło wiedzy.
piotrva - Zgadzam się, od jakiegoś czasu zamierzam się do przesiadki na C. Ten program chcę jedynie dokończyć w Bascomie. niveasoft - Dziękuje za odpowiedź. Faktycznie, zainstalowanie nowszej (2.0.7.8) wersji Bascoma pomogło. Program z poleceniami Line oraz Boxfill się kompiluje i działa. Błąd pojawia się jedynie przy próbie kompilacji kodu z poleceniem...
Żaden ;).
Można zapisywać dowolne dane z dowolnej zmiennej. W pętli umieściłem odczyt adc, bo tylko w trybie jednoczesnej obsługi przetwornika i karty mamy możliwość rezygnacji z bufora. Oczywiście ta obsługa może dotyczyć kilku kanałów, łącznie z zapisem na karcie znaczników/wartości czasu. Analogicznie może się odbywać współpraca z rs232/485 (w procedurze odczytu...
czy w bascomie8051 jest mozliwosc odebrania danych tak aby zapisac je do tablicy w postaci bitowej? nie musi byc to zapisanie do tablicy, moze to byc string, ale zeby dane bylo w postaci ciagu 0 i 1
Dzięki Pozdrawiam
Nie bardzo mam teraz ochotę zgłębiać kod ponownie, ale pamiętam że w Twojej wersji Timer odmierzał czas 20s i kiedy nadszedł czas to w przerwaniu mierzył temperaturę Dallasem DS18B20 i w dodatku pisał od razu po wyświetlaczu :D Dlatego jedną ze zmian było to, że Timer tylko ustawia flagę by dokonać pomiaru i go wyświetlić. Tak więc dopóki nie jesteś...
Witam ponownie Mnie chodziło o idee , więc konkretne wartości opóźnienia to drugo planowa sprawa. Opóźnienie trzeba odpwiednio dobrać w zależności od spodziewanego czasu trwania zmiany, a zaproponowane uproszczenie zapisu oczywiście jest OK.
a napiszcie jakim programem programujecie bo ja eksperymentowalem z różnymi i w wiekszości mialem podobny problem że czasem bylo ok a czasem wyskakiwal ten bąd weryfikacji. W końcu trafilem na Bascom avr i pozbylem się problemów. Teraz każdy zapis kończy się sukcesem.
Strasznie szybko sobie zjedziesz EEPROM - ma przecież tylko 10 000 razy cykl zapisu gwarantowany, czyli po 10 000 zmian możesz mieć poważne problemy - komórka padnie. Albo zmieniaj co jakiś czas komórki, albo zapisuj dane przy wyłączeniu urządzenia - dodaj większy kondensator podtrzymujący zasilanie i jak wykryjesz spadek napięcia zasilania przed kondensatorem...
janbernat --> jak się napisze własną procedurę obsługi DS'a to może sobie przychodzić przerwanie w trakcie odczytu "do" czy też odczytu "z" .... a i tak nic się nie stanie ;). Tyle że trzeba w najbardziej krytycznych momentach wyłączać przerwania. Wtedy czasy wyłączenia przerwań są drastycznie krótsze niż taki kawał czasu jak 3,5ms - przecież to "wieczność"....
Procek ma tylko zapisać wartość w EEPROMIE oraz po jakimś czasie odczytać. Chyba za szybko nie jest , 10ms przerwy po zapisie chyba wystarczy... Spróbuję jeszcze zwiększyć czas.
Mam mały problem - nie potrafię przenieśc kodu z bascoma do avr c (eclipse). Tzn, wiem ze nie przeniosą go 1:1 chodzi mi raczej o ogólne zasady, szkielet: chodzi o zapis do pamięci eeprom stanu licznika - licznik sie zmienia przy pomocy przycisków góra/dół - przy wyłaczeniu zasilania oczywiście jego zawartośc jest kasowana. Oczywiście zapis przy każdej...
Źle zrozumiałeś ten zapis. Część odpowiedzialna za taktowanie co 10us wygląda tak: ... _pulse_in5: (at)genus(9) ; THIS FOR 10 US UNITS but approx. depends on XTAL ; you can remove the above call and tailor this routine ; when remarked 10 cycles/loop are needed and for 1 Mhz this is 10 uS ; for 4 MHz you need additional 30 cycles and the...
Jeżeli atmega idzie na 4MHz to naturalnie że soft trzeba o tym powiadomić $crystal = 4000000 A postoje nie mają wpływu na miganie gdyż LCD w tym czasie powinien wyświetlać to co przed pętlą do chwili ponownego zapisu.. ustaw najpierw odpowiednie taktowanie, potem ew Home zamiadt cls i będzie ok A jeżeli chodzi o te + 5 to możesz dodać tę część programu...
Dim B as byte ..... [program] B =waitkey() .......[program] If B = 121 then ..... W sumie wystarczy samo B = waitkey() lub B = inkey() a to if to już chyba wiesz do czego nie?? SZUKAJ!! wszystko jest w helpie bascomu!!
DZIAŁA :) Tak to ta biblioteka coś mieszała była ona zapisana w przykładowych programach do obsługi 1wire i termometru ds i tak zostawiałem w kodzie ten zapis. A wpis $regfile = "m16adef.dat" muszę mieć bo mam atmege16a i inaczej nie działa Tyle czasu zmarnowane :) Już klikam za pomoc :)
Niemniej nawet taki prosty bootloader wygląda na coś poza możliwościami autora Dlatego napisałem "teoretycznie mozliwe" . Do tege ten bascom
Też parę dni temu byłem na etapie testowania tego układu i doszedłem do następujących wniosków. Układ działał poprawnie tylko z softem AVRprog z pakietu AVRstudio. Do pracy z bascomem w ustawieniach programatora wybrałem External i podałem ścieżkę dostępu do AVRprog.exe - działało jak należy. Na stronie było napisane, że układ działa również z softem...
Kurna, ale jazda Internet mi sfiksował, godzinę szukałem tego posta, zapisałem go już do ulubionych, żeby nie szukać jak głupi. O co chodzi z tym pomógł i punktami na forum, bo nie czaję. Mam neta od niedawna, a informatyki się uczyłem w czasach, 486SX. Do odliczania czasu wcale nie trzeba układu RTC, daje to tylko tyle, że można go zasilać z osobnej...
Sposób odbioru poprzez procedurę obsługi przerwania od URXC jest lepszy, ale: 1. Nie możesz przy wejściu do procedury obsługi przerwania kasować zmiennej Ciag_rx ponieważ przerwanie od URXC jest wywoływane dla każdego odebranego znaku; 2. Nie możesz w procedurze obsługi stosować Do...Loop ponieważ blokujesz odbiór i pętlę główną do czasu odebrania końca...
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 obydwa piny. Skonfigurowanie ich polega na wpisie do rejestru...
zapis czasu eeprom bascom bascom zapis pcf8583 zapis czasu
otwarcie drzwi uzbraja budowa magnesu czujnik biegu wstecznego
brother zacięcie papieru obudowa transformatora
Wpływ niskiego ciśnienia na kocioł Termet Ecocondens Crystal Termet EcoCondens Crystal - wysokie zużycie gazu