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...
Poza tym funkcje Readeeprom i Writeeeprom są chyba niezbędne? Wypróbuj propozycje zmian i sam się przekonasz.
Ile zadeklarowałeś HWstack SWstack i Framesize?
http://www.elektroda.pl/rtvforum/topic14...
... 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.
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...
Może coś takiego : Dim Str1 As String * 10 Dim Koniec As Byte Dim Key As Byte Str1 = "" Koniec = 0 Do Key = Waitkey() 'pobieranie znaku, tu z terminala Select Case Key Case 13 : Koniec = 1 ' np. kod ENTER = 13 Case Else : Str1 = Str1 + Chr(key) ' inne znaki dodaje do str1 End Select If Len(str1) = 10 Then Koniec...
...Nawiązując do sugestii kolegi wrzuciłem linijki do programiku i na nieszczęście nawet wyświetlacz lcd przestał wyświetlać, a tylko mruga pierwsza linijka. Nie no , jasnowidzem to nie jestem :D Poza tym , to tylko "pomysł na ..." , a nie gotowiec.Pokaż(załącznik) cały kod , to może cosik się zaradzi :D Piotrek
Dim zmienna As long ,long1 as byte at long overlay, long2 As Byte At long + 1 Overlay, long3 as byte at address + 2 overlay, long4 as byte at address +3 long=1 do WRITEEEPROM long1 , 1 WRITEEEPROM long2 , 2 WRITEEEPROM long3 , 3 WRITEEEPROM long4 , 4 loop end
Wątpie czy szybciej. Szybciej będzie ją rozkodować (tam kodowanie jest banalnie proste, zamiast powtarzać te same ciągi wartości w bitmapie, jest tylko raz wartość do wyświetlenia oraz ilość powtórzeń wyświetlenia tej wartości), niż przesyłać relatywnie dużą bitmapę po i2c lub z eeprom. z Flash będzie pewnie szybciej. kompresowanie do BGF jest kompresją...
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...
Do pracy Uartu nie są potrzebne przerwania. Ale ty masz tu buforowanie, które wymaga przerwań. Jak niby bascom ma wyłapywać znaki w tle bez przerwań? Jak masz jakis pomysł to daj znać - chętnie go kupię.
Program się zawiesi bo na czas zapisu program jest zatrzymywany w pętli oczekującej na zakończenie zapisu (tak robi BASCOM a domyślam się że mówisz o BASCOMowej funkcji zapisującej a nie jakiejś własnej). Kolejne przerwania od Timera będą wywoływane tuż po poprzednim a więc program główny będzie praktycznie stał w miejscu. O zajeżdżaniu pamięci EEPROM...
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...
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.
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...
Podnieś Bascom do nowszej wersji. Wersję 2078 już spokojnie znajdziesz w sieci. Na 2080 się to kompiluje bez błędów mimo iż program zgłasza kilka ostrzeżeń o dwukrotnej deklaracji tych samych zmiennych itd.. Musisz wiedzieć że AVR-DOS potrzebuje minimum 1500B SRAM i w Mega32 zostaje Ci 500B SRAM. Nie zadeklarowałeś wielkości stosów HW i SW oraz ramki...
Nastepnym razem napisz jaki masz blad, na moje to zapis powinien byc i=i+1 oraz i=i-1
Witam. Zapis (składnia) Load Timer1 jest zły. Sprawdź w pomocy Bascoma.
Witam Do Atmega1284p z szybkością 8 MHz mam podpięte złącze kart SD. Oprócz zapisu mam tam czujniki DS, BME280, DHT22. Do tej pory zapisywałem wszystko w jednym pliku, ale chciałbym to rozdzielić. Dołożyłem zapis do drugiego pliku - działa [syntax=vbnet] '*********************** Obs-uga karty SD Sub Write_to_sd Sd_year = "20" + Str(rok) ' wartosc zmiennej...
Witam ! Zmień zapis na ten: Stan_enk = Encoder(pind.2 , Pind.3 , Lewo , Prawo , 0)
Jak masz skonfigurowane wejście ? Zapis A = A + 50 jest całkowicie poprawny.
Wydaje mi się że jak byś nie zrobił i będzie działało to tak jest dobrze ;] ilu programistów tyle podejść do tematu... Jeżeli już zadeklarujesz taką dużą tablicę to tak czy siak będzie ona zajmowała jakąś przestrzeń w pamięci więc czemu nie użyć jej i odczytać z eeprom wszystkiego na raz. Kiedyś robiłem podobny sterownik do CO ze sterowaniem temperaturą...
Zapis koloru w postaci HEXa, to po prostu konwersja liczby z systemu dziesiętnego na szesnastkowy. Np. kolor jasny zielony: rgb(173,255,47) == #ADFF2F
Nie ma potrzeby ustawiać adresów zmiennych "na sztywno". Ponieważ Bascom dla zmiennych wielobajtowych , stosuje zapis typu Little Endian to kod może wyglądać tak: Dim Zmienna As Word Dim Zmienna_lo As Byte At Zmienna Overlay Dim Zmienna_hi As Byte At Zmienna+1 Overlay I nie obchodzi nas pod jakim adresem znajduje się Zmienna , bo kompilator zadba o...
Witam Chciałem zapytać, czy możliwa jest zmiana nazwy pliku w którym zapisują się wyniki - np co dziennie inna nazwa pliku ( np. powiązana z datą ) ? Używam PCF8583 i w sumie mógłbym brać informacje z zmiennych dnia i miesiąca lub dokonywać zmiany o 23:59:59. Używam standardowego kodu do zapisu: Sub Write_to_sd() Local Errorcode As Byte ''()...
Tak, będzie działało. Tutaj może rzucę ustawienia, które działają na 100%: DDRD |= (1<<PD3); TCCR2A |= (1<<COM2B0)|(1<<... TCCR2B |= (1<<CS21)|(1<<CS... OCR2A = 125; OCR2B = 125; Zapis WGM22:0 oznacza WGM22, WGM21, WGM20. Często się w datasheetach taki zapis spotyka. Właśnie...
W jaki sposób zapisać nazwę aby kompilator nie wyrzucił błędu ? sugerowana nazwa poniżej nie jest akceptowalna lds r1, {Dane(1)} lds r1, {Dane(1)} - tutaj chcesz pobrać pierwszy element tablicy. Tak się nie da. Zarówno niveasoft , jak i pawlik118 mają rację. W przypadku odpowiedzi kol. pawlik118 otrzymasz adres początku tablicy. Natomiast jeśli chodzi...
Z powodu prowadzenia kresek zamiast nazw sieci schemat jest nieczytelny. LED po lewej stronie raczej Ci nie zaświecą przy takim połączeniu. Mnie bardziej niepokoi te 140 mA niż 220, chyba, że liczysz z podświetleniem LCD.
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...
Jak wystawiasz zbocze, to dane są przepisywane z wejścia na wyjście (zatrzaskiwane). Potem kostka trzyma te dane do kolejnego zapisu czyli wpisujesz i zostawiasz, a jak chcesz zmienić robisz kolejny zapis zboczem. Różnica z przerzutnikiem latch jest taka, że tam jak miałeś poziom wysoki na wejściu zegarowym, to zmiany z wejścia pojawiały się na wyjściu....
Witam. Odnośnie wgrywania fusebitów z programu to mam taki problem: Gdy zapiszę ustawienia fuse do pliku programu to w przypadku procka atmega8 w normalnej wersji dip28 kompilator bascom avr zapisuje tak: $prog &HFF,&H13,&HD9,&H00 i to działa przy wgrywaniu programu do następnego procka,bity ustawiają się automatycznie. Natomiast gdy zapis do programu...
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 +...
To wiele wyjaśnia. Spróbuj tak ;) [syntax=vbnet]$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 64 $swstack = 16 $framesize = 64 $baud = 9600 Config Lcd = 16x2 Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.6 , Db7 = Portb.0 , E = Portb.4 , Rs = Portb.5 Cursor Off : Cls Dim K1 As Byte Dim K2 As String * 20 Dim Id As String *...
No chyba żartujesz? To jedynie odbiera bloki po 512B. Żeby zformatować to trzeba po pierwsze wysyłać. Dla porównania powiem Ci, że procedura która odbiera dane (czyli ta z kodu powyżej) ma 85 linijek, a cała procedura (no może nie cała bo jedynie zapis i odczyt plików) to FAT16 jakieś 10000 linijek. Samo formatowanie jest prostsze, ale piszę to żeby...
Witam ATMega8 ma Timer1 16-Bitowy i do odczytu lub wpisu służą dwie dane: "TCNT1L" - odczyt lub zapis "dolnej" 8-Bitowej części i "TCNT1H" - odczyt lub zapis "gónej" 8-Bitowej części n.p. stan licznika "21456" odpowiada : TCNT1H =83 ; TCNT1L=208 bo 21456:256(pojemność TCNT1L=256)=83+208 Aby wszystko było OK to obie wartości (TCNT1H i TCNT1L) muszą być...
Mam wrażenie że przy obecnie wybranym algorytmie nie da się przyspieszyć. Gdyby dane o adresie zapisywane były w ciągu z reszta to ujdzie i nie trzeba czekać ale tak to niestety: 1. ładujesz adres początku 2. wysyłasz dane po koleji 3. czekasz te 10ms 4. zapiszujesz pod 5000 zmienną adresu 5. czekasz znowu 10ms I tak powinien wyglądać fragment zapisywania....
GPIOB->BSRR=0b00000000000000000000000... //ustawi 1 na PB.0 bez zmiany pozostałych pinów? GPIOB->BSRR=0b00000000000000010000000... //wpisze 0 na PB.0 bez zmiany pozostałych pinów? Jednak wolę Bascom niż zabawę w liczenie 32 bitów To nie Bascom, nic nie trzeba liczyć. Piny mają zdefiniowane nazwy symboliczne np. w odniesieniu do...
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...
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....
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...
Nie :D Chodzi mi o to że nie zapisuj tego textowo. Bo na razie zapisujesz textowo, i olaboga, dwójkowo! Czyli jeden pixel zajmuje Ci jeden znak (0 albo 1). A jak zapiszesz "surowo" to w jednym bajcie będziesz miał 8 pixeli. Np. takie "A" to jest 65d, czyli 41hi czyli 01000001. Czyli jedna litera "A" zapisze Ci to samo co aż 8 znaków "01000001". Tylko...
Kilka uwag odnośnie tego programu: 1. Zamykaj sekcje w takiej kolejności, w jakiej je otworzyłeś: Do If P = 1 Then D = 0 Wait 2 D = 1 Loop Until P = 0 End If Do If P = 1 Then D = 0 Wait 2 D = 1 End If Loop Until P = 0 2. Rejestr PINx jest tylko do odczytu - w innych językach zapis do niego nie dał by zupełnie nic, nie wiem jaki kod wykonywalny Bascom...
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 co ja ci podałem trza by to było mniej więcej zrobić...
atom1477, przecież o ile jakieś przerwanie w międzyczasie nie zmienia Portd.5 to kod Nie chodzi o to żeby ustawił w końcu, tylko w momencie kiedy piszesz Pind.5 = 1: No ale Portd.5 zamiast Pind.5 byłoby przejrzyściej. W ogóle przejrzyściej było by stosować ten zapis jeszcze zamiast Set Portd.5. Tysiące razy było. Do rejestru port zapisujemy a z rejestru...
Witam, Zależy mi tylko na tym, żeby Arduino zliczał impulsy z kontraktrona do 5 - 1 impuls- świeci się dioda led 1 - 2 impuls zapala się dioda led 2 - 3 impuls zapala się dioda led 3 - 4 impuls zapala się dioda led 4 - 5 impuls zapala się dioda led 5 i dodatkowo daje sygnał ciągły HIGH na pin SILOWNIKA przez cały 5 po 6 impulsie reset i znowu: - 1...
2051 nie ma interfejsu do obsługi zewnętrznej pamięci, który automatycznie generuje stany RD i WR. WR=0 RD=1 - zapis do wyświetlacza WR=1 RD = 0 - odczyt z wyświetlacza Jeżeli chcesz zrobić obsługę od nowa: http://www.mcselec.com/index.php?option=... Tam jest sporo ciekawych informacji, co prawda wykorzystany jest interfejs...
avr'y mają programowalne piny wejścia/wyjścia, posiadają tranzystor zwierający do zasilania/masy (port jako wyjście) oraz otwarty kolektor/pull-up (port jako wejście). całość się prezentuje tak: DDRx = 0; PORTx = 0 to pin jest zwierany do masy DDRx = 0; PORTx = 1 to pin jest zwierany do zasilania DDRx = 1; PORTx = 0 to pin jest typu otwarty kolektor...
Proszę. Jest to przykład zapisu i odczytu zarówno zwykłych bajtów jak też łańcuchów tekstowych inaczej mówiąc napisów w Eeprom. Program i funkcje działają z małymi pamięciami których adresacja mieści się w jednym bajcie. Do tego przykładu użyłem 24C04 Jeśli ktoś chce to może po prostu wpisać sobie jakieś dane do buff(1), Buff(2) itd i tak zapisać. Potem...
Witam , wklejam kod jaki udało mi się wypocić. Miało być tak pięknie a wyszło jak zawsze :-( Ten twój kod jest oczywiście błędny. Po pierwsze, jeżeli stosujesz napięcie referencyjne wewnętrzne, to dla AtMega 8 wynosi ono 2.56V. Zatem poziom napięcia mierzonego podanego na dowolny pin ADC nie może przekroczyc tej wartości. Jeżeli jednak ten warunek...
bascom zapis czasu bascom pcf8583 zapis zapis eeprom bascom
przesył routera satelitarna antena panelowa naprawa biosu compaq
garmin reset szukam instrukcji
Thunderbird 115 dźwięk powiadomienia nie działa – konfiguracja WAV, FiltaQuilla, Windows 11 Jak znaleźć kod do połączenia telefonu z telewizorem?