Do konwersji łańcucha na zmienną numeryczną wykorzystaj funkcje VAL lub HEXVAL . Mając już adres zmiennej, możesz użyć instrukcje INP do pobrania wartości. [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 80 $swstack = 80 $framesize = 80 Declare Sub Show_byte(byref Adres As String) Declare Sub Show_word(byref Adres As String) Declare...
to powinno pomóc - zwraca adres początku tablicy https://avrhelp.mcselec.com/index.html?l...
Do komunikacji z układem można wykorzystać instrukcje I2csend i I2creceive , po wykonaniu w zmiennej Err jest kod błędu: [syntax=basic4gl]I2csend 112 , &B00010000 ' I2csend adres układu, wartość I2creceive 113 , Zmienna ' I2creceive adres układu, zmienna[/syntax]
Sda i Scl są skonfigurowane w kompilatorze (używam Bascom Avr). Adres się zgadza. A sprawdziłeś czy Twój PCF odpowiada ACK , po wysłaniu jego adresu na magistralę :?: Piotrek
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....
Witam Z tego co pamietam to by cokolwiek zapisac i odczytac z epromu nalezy podac tez adres komorki pamieci . W BASCOMIE to wyglada chyba tak : Writeeprom Tekst ,adres a potem odczytujemy Readeeprom Tekst ,adres AT90S2313 ma 128 bajtow pamieci EEPROM, wiec jest 128 komorek jedno-bajtowych komorek pamieci. Stad adres : 0-127 Nie wiem jak wyglada sprawa...
Typ BYTE - zakres od 0 ... 255 ale Bascom pozwala zadeklarować dim tablica(256) as byte i zaadresować tablica(256) = 12 Prawdopodobnie element 256 ma adres 0 ale to tylko moje przypuszczenie Bascom gdy pozna się i pogodzi z jego ułomnościami ( czyli ten typ tak ma ) Pozwala dość szybko pisać proste i nie tylko takie programy. Tak, tak, wiem C jest lepsze...
Napisz mi na pw. adres e-mail to ci wyślę kurs bascom z edw czyli mikroprocesorowa ośla łączka. Zostało to potem złożone w jedną książkę piotra góreckiego, tylko tytułu nie pamiętam.
Nie, nie ma stałego adresu, adres ustalasz sam, byle by nie był taki jak innych urządzeń. Poszukaj w helpie tego BASCOM-a z tego co pamiętam były tam przykłady programów.
Jeśli procesor ma wbudowane 512 bajtów EEPROM, to ostatni adres to 0x1FF/511. Przyjmijmy że zapisuje liczbę 123 pod adresem 100, jeżeli odczytam dane z adresu 101 to wynikiem będzie 2? Wynikiem będzie to, co wcześniej zapisano pod adresem 101. Jaką max wartość mogę zapisać pod 1 adresem eeprom? Z punktu widzenia 8-bitowej magistrali danych pod jednym...
Jeżeli nie masz drukarki w systemie to zainstaluj jakąś poprzez "dodaj drukarkę". Zalecają Linotronic. Ustaw w opcjach Bascoma odpowiedni programator i odpowiedni adres portu LPT(adres domyślny powinien być dobry). W opcjach wskaż też programowany uC. Nooo i poczytaj tą książkę.
To taki programik do sprawdzania pod jakim adresem jest coś na I2C: $crystal = 11059200. $regfile = "aTtiny2313.dat" Config Lcd = 16 * 1a Config Lcdpin = Pin , Db7 = Portb.7 , Db6 = Portb.6 , Db5 = Portb.5 , Db4 = Portb.4 , E = Portb.3 , Rs = Portb.2 Config Scl = Portd.5 Config Sda = Portd.6 Dim Adres As Byte Cls Lcd "start" Wait...
zapis writeeeprom zmienna , adres odczyt readeeprom zmienna , adres Musisz pamiętać ile bajtów zajmuje zmienna którą zapisujesz i o taką wartość zwiększyć adres przy zapisie / odczycie następnej zmiennej Jeśli zmienne typu Byte , adres zwiększasz o 1 Jeśli zmienne typu Word , adres zwiększasz o 2 Jeśli zmienne typu Integer , adres zwiększasz o 2 Jeśli...
Ostrzegam, że nie jestem pewny jak to zrobić, tylko głośno myślę. Mamy 12 czujników, adres każdego zajmuje 8 bajtów, deklarujemy sobie więc DS_ID(96) as Byte jak odczytać adresy to już wiesz. Czyli w bajtach od 1 do 8 będziesz mieć ID czujnika nr 1, od 9 do 16 ID czujnika nr 2, itd. Teraz do funkcji proponuję przekazywać adres z pierwszym bajtem...
Nie wiem jak w BASCOMie to zrobic (kto w ogole pisze programy na procek z 256kB FLASH w tak dziwacznym jezyku?), ale jesli BASCOM wspiera kompilacje pod konkretny adres i odwolania do funkcji przez wskazniki (to mozna zreszta zrobic za pomoca wstawki w assemblerze), to najprosciej te funkcje umiescic pod jakims znanym z programu glownego adresem, przy...
Wygląda na to że wszystko działa. Sprawdź czy masz właściwy Baudrate. Na obrazku widać że Adres 1 Funkcja 4 i prosi o dwa rejestry typu Word a potem dwa bajty Checksum. https://obrazki.elektroda.pl/7487360400_...
Witam ! Oto program napisany w Bascom AVR na ATtiny2313. Myślę zę sobie poradzisz ze zmianą na Megę8. Odczytuje on Adres i Rozkaz kodu Rc5 i wyświetla na wyświetlaczu LCD. $regfile = "attiny2313.dat" $crystal = 10000000 Config Lcdpin = Pin , Db7 = Pb.2 , Db6 = Pb.3 , Db5 = Pb.4 , Db4 = Pb.5 , E = Pb.6 , Rs = Pb.7 'Config Lcd = 16 * 1a Config...
Wartość w poleceniu lookup to jest właśnie adres wiec nie kumam w czym problem. przeskaluj adc z 0-1023 na 0-90 i potem wywołuj zmienna=lookup(adc,tablica)
I chyba po POPALL przydałby się jeszcze dwa POP-y dla zdjecia zbędnego już adresu powrotu, którego POPALL nie zdejmie. Tak może być?? dokładnie - jak tego nie zrobisz, to z każdym przerwaniem będzie Ci rósł stos o 2 bajty, aż zacznie Ci nadpisywać jakieś dane - wtedy program się "wysypie". Aha.. w sumie na cholerę mi adres powrotu jak i tak skakać...
No to ktoś nakombinował :D !!!!!! 1. Płytka bazowa - Procesor w standardowej konfiguracji z programem w pamięci zewnętrznej (U3). Zworką JP4 ustalasz czy ma wykonywać program z pamięci zewnętrznej czy wewnętrznej. Kiedy ustawisz na pamięć zewnętrzną powinieneś zworkę JP1 ustawić na adres 0000h aby procesor szukał programu na początku eprom'u. Istnieje...
Poczytaj w pomocy o instrukcjach: DATA , RESTORE, READ... To się nie nadaje , ponieważ Restore potrzebuje etykiety , a Read to odczyt sekwencyjny i nie da sie wybrać konkretnego elementu tablicy , tylko trzeba odczytywać kolejno , począwszy od pierwszego elementu. Ale ... Bascom AVR posiada funkcje , za pomocą których można naśladować mechanizm wskaźników...
Ja mam tak (DS18B20) i to chodzi: 1wreset 1wwrite &H55 ' Będę wysyłał adres 1wwrite Adresy(1) , 8 ' Wysyłam adres 1wwrite &HBE ' Komenda dla czujnika o wysłanym adresie Wew(1) = 1wread(9) 1wreset 1wwrite &H55 1wwrite Adresy(9) , 8 1wwrite &HBE Zew(1) = 1wread(9) 1wreset 1wwrite &HCC ' Komenda skip ROM,...
spojrz powyzej odbierasz ją jako LONG jeśliby się nie dało to proponuje dim Licz as long at 120 DIM B1 as Byte at 120 overlay DIM B2 as Byte at 121 overlay DIM B3 as Byte at 122 overlay DIM B4 as Byte at 123 overlay inputbin b1,b2,b3,b4 oczywiście adres 120 jest przykładowy- wiadomo ze zmienna licz zajmuje 4 kolejne bajty
Nie znam mozliwości w tym zakresie Bascoma. Jedno jednak jest pewne. Każdy program tego typu może działać sekwencyjnie. Oznacza to, że wywoływanie kolejnych procedur w procedurze działać musi. Jest jednak tzw granica zagnieżdzeń. Może ona wynika z możliwości samego kompilatora (programu tłumaczącego - w tym wypadku Twoim nie sądzę aby tak było), albo...
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...
Można zadeklarować prawidłowo zmienną eeram W ten sposób Dim Adres_er(size_t_mac) As Eram Byte At Adres_p_mac Poprzez komende AT znam adres, po jaki będzie się odwoływać zmienna eeram w pamięci. Niestety, ale z Eepromem ten numer nie przejdzie , ponieważ Bascom ignoruje etykiety w Eepromie. Deklaruje, jakie wartości powinny być zapisane w eeram...
ok kolego już ci pomagam! opis wyprowadzeń wyswietlacza i tak go podłącz jest to stała konfiguracja. oczywiście porty mozesz zmienić. I tak zaczynamy od wyprowadzenia nr 1 do ostatniego 14 lub 16 jeśli jest podświetlenie . 1- masa 2- +5V 3- kontrast (dzielnik napiecia PR o wartości 5k środkowa noga do wyswietlacza. Pozostałe dwie nigi : jedna do masy,...
W książce Pana Dolińskiego "Mikrokontrolery AVR w praktyce", z racji że była pisana na starszy procesor jest przykład kompletnej programowej implementacji tego interfejsu w C i co najważniejsze szeroko opisana. Szkoda się powtarzać. Książkę bez problemu znajdziesz w sieci. Do tego ten czujnik się inicjuje. Kolejnośc wygląda mniej więcej tak (mimo że...
Bo te dwie ostatnie linie niekoniecznie mają adres taki jaki mają w LCD 4x40. Pewnie te 4 brakujące kolumny są w końcówce linii 2. Zrób Locate 2, 12 i zobacz. Powinien tam być początek linii 3. A gdzie będzie początek czwartej to zobaczymy później.
Nigdy nie używałem funkcji. Więc nie mam pojęcia jak to zrobić. Czas sie dokształcić, do Bascom jest polska pomoc z przykładami. Jaki problem? Ponadto zamiast funkcji można użyc podprogramu, choć funkcje są wygodniejsze. Ta funkcja musi być solidnie rozbudowane aby przesłać jeden znak. Bzdura, wysłanie znaku, to wysłanie bajtu do sterownika. Wyświetlacz...
Jak nie rozumiesz całości to ciężko będzie to tak w kawałkach tłumaczyć bo w drugiej funkcji jest wskaźnik na tablice z danymi. Trzeba pobrać adres tych danych u Ciebie i trudno się wypowiadać nie widząc całości. Mam dużo swoich spaw i też nie bardzo mam czas się oderwać. Najlepiej ściągnij jakąś biblioteke do obsługi LCD z Forum Bascom i zobacz jak...
Witam Sprawdź to: $regfile = "m8def.dat" $crystal = 8000000 Config Scl = Portc.5 Config Sda = Portc.4 dim adresw as byte ' adres do zapisu dim adresr as pyte ' adres do odczytu adresw = &B10001001 adresr = &B10001000 do ' I2cstart I2cwbyte adresw ack I2cwbyte &B00000001 ack' Volume bez autoinkrementacji subadresu I2cwbyte &B00000101 ack' 5Db...
Ramka danych standardowa i2c czyli najpierw wysyłasz adres układu potem wysyłasz dane i tu jest z górki bo nawet w tamtym poście z forum masz podane parametry jakie należy wysłać. Raz wysyłasz przy uruchomieniu konfigurację z jaką ma działać układ i to należy wrzucić do klamerek setup w uproszczeniu chcesz aby układ miał ustawiony bas i sopran na 0...
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 = write, 1 = read ). Stoi o tym jak byk w dokumentacji na str. 25......
No tak dwa bity z lewej to rok dalsze 2 to 10 dni i ostatnie 4 to dzień zrobiłem taki program Zapisuje na starcie godzinę 23:59:58 i datę 31-12 dzień wpisuję tak &B00110001 , daję mi to 31 dzień miesiąca , kiedy przechodzi data na 1-01 to zmienną dnia wyświetla mi tak &B00000001 ale bity roku nie uległy zmianie. Jak do tego nie dojdę chyba zmienię...
(at)zumek Dzięki za kod, ale nie do końca wiem jak on działa. Szkoda :( W1 to tablica wskaźników na W, przesunięta o dwa miejsca? Mylisz się :( W1 , to jakby wskaźnik na W powiększony o 1 element tablicy W , czyli 2 bajty . Natomiast tablica wskaźników , to ... nie z tej bajki ;) A dokładnie rzecz ujmując , to Bascom definiuje tablicę W1 , w obszarze...
Zmiennej lokalnej nie dasz do DMA. Znaczy dać by się dało bo jakiś adres ona tam ma. Przynajmniej w BASCOMie który nie optymalizuje kodu a więc wszystkie dane mieli na pamięci RAM. Tym RAMem jest stos. W każdym razie chodzi o to że zmienna lokalna jest tracona po wyjściu z funkcji. Stos nie znika ale jest wykorzystywany przez coś innego. Więc miejsce...
Jeśli chodzi o soft, to powstał szkielet programu. Na razie odmierza to czas, i powinno obsługiwać pilot RC5. W polach „A:” – powinien wyświetlić się adres pilota, „C:” – numer przycisku z pilota. W symulacji programowej poszło, ale na razie nie mogę przeprowadzić prób z braku modelu. Ale żeby stworzyć wersje BETA...
W pliku definicji zapomnieli o PWM1C. Z ciekawości na szybko chciałem zerknąc i ustawić wszystkie PWM`y jedną wartoscią. Co ciekawe, PWM1C się "nie pokolorował" znakiem tego nie ma jego definicji w pliku m128def.dat :D Możesz użyć OCR1C i wyjdzie na to samo. Zobacz obrazki, ale ja poszedłem dalej i dopisałem sobie w pliku m128def.dat definicję dla PWM1C...
Ale ten sposób wysyłania ramek to trochę nie teges. A jak poprawnie się wysyła takie ramki i czym? Nie możesz po prostu sprawdzić w opisie programu jak należy formatować dane? Bo domyślam się że to jakiś terminal jest. Na Wikipedi jest opisane tak: "Minicom to program do kontroli modemu oraz emulator terminala dla systemów uniksowych" Ciężko Ci pomóc...
Witam Jak wielu spotkałem się z problemem problemem kłopotliwej obsługi pilota z RC5. Po poszperaniu w necie wpadłem na http://www.elektroda.pl/rtvforum/topic20... ten temat. Jak się okazało wszystko na tym programie pracowało, ale nie zawsze. Kłopotem było napisanie programu "pod pilota". Oczywiście pochwała dla Sabotaz'a który problem "ruszył"...
c0000005 to nie adres pamięci, tylko kod wyjątku Access Violation właśnie. Pięć explorerów powiadasz? Ja bym zaczął od skanowania MBAM albo zamieszczenia logów z OTL ;) A skoro zrzut zrobiłeś, to się podziel, po uprzednim spakowaniu go 7zip LZMA2 z kompresją Ultra. Alternatywnie możesz zainstalować Debugging Tools for Windows (x64) i przy użyciu odpowiednich...
Może cos takiego ? Config Scl = Portc.0 ' I2C Clock. Config Sda = Portc.1 ' I2C Data. Config I2cdelay = 100 Declare Sub I2c_ram_write(byval Addres_desired As Word , Byval Byte_to_write As Byte) ' Writes data to the I2C EEPROM. Declare Function I2c_ram_read(byval Addres_desired As Word ) As Byte ' Reads data to the I2C EEPROM. Declare...
Co do twojego pierwszego problemu, to najprościej jest czytać ciąg nie z określonego miejsca, a za określonym znakiem. Wszystkie dane masz przedzielone przecinkami. Zakładam że tych przecinków jest stała ilość. Po prostu czytaj łańcuch po 7 przecinku do następnego przecinka i już i wtedy długość wcześniejszych danych nie ma znaczenia. Co do eepromu...
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ą...
Powinieneś skonfigurować SDA i SCL w programie. Nie napisałeś w jakim będziesz pisał bo np w BASCOM 8051 robi się to tak: Config Sda = P1.1 Config Scl = P1.0 i wówczas możesz dowolnie wybrać porty . Przydaje się to przy projektowaniu płytki. A0 i A1 ustawiasz adres do zapisu pamięci albo (+) albo GND
$crystal = 8000000 Config Portb.0 = Output Config Portb.1 = Output Config Portb.2 = Output Config Portb.3 = Output Config Rc5 = Pind.6 Dim Address As Byte , Command As Byte Enable Interrupts Do Getrc5(address , Command) Command = Command And &B01111111 If Address = 0 And Command = 7 Then 'tu wpisac adres i komende guzika dla ktorego ma robot...
A spróbuj tak: Odczyt=Temp Dim Jednostki As Byte , Dziesiatki As Byte ' cyfry do wyświetlania temperatury Dim Temp As Byte ' temperatura Dim Pompka As Bit ' sterowanie pompką Dim Odczyt As Byte Dim Cyfrybcd As Byte Dim Ktorywysw As Bit Enable Interrupts ' oblokuj przerwania Enable Timer0 'odblokuj timer0 Enable Timer1 'oblokuj timer1 Config Timer0 =...
Pomyśl trochę nad "sprytem" kodu :D Chodzi mi o to że kiedy widzisz powtarzające się linijki kodu to powinieneś pomyśleć "czym one się różnią" i tylko te różnice napisać osobno a wszystkie powtarzające się sprawy napisać tylko raz. Po co tyle tych Locate 1,1 . Przeciez i tak i tak będziesz tę linijkę rysował od 1,1 zawsze, chyba że inaczej podejdziesz...
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...
eeprom adres bascom dekoder adres bascom adres pcf8574 bascom
tablet polecam szczotka wkrętarka makita astra antena radio
Usterka obwodu „A” świecy żarowej Iveco – diagnostyka i naprawa Styki stycznika AEG LS4: opis i parametry