np tak: (to tylko pogladowo bo to nie jest program) a-enable b-data c-clk dana-dana do wyslania c=0 b=0 'obie linie w stnaie spoczynku maja 0 a=1 'zaluzmy ze wysoki stan uaktywnia odbiornik danych dana=??? for x=0 to 7 b=dana.x 'wystaw bit c=1 'zaluzmy ze narastajace zbocze wpisuje bit c=0 next x a=0 'jesli na tym jednym bajcie chcemy skonczyc transfer,...
u mnie krzaki to rzecz normalna i nie przejmuję się nimi. Zawsze będzie tak że do bufora coś wpadnie. Od czego są polecenia: InStr i ChKey i Mid? Ważne że między krzakami jest odpowiedź.
Też myślałem o tym żeby instr .Wait pobrała czas ze zmiennej z adc! ale nie wiedziałem czy tak można Wait ze zmienną. dziś to sprawdzę! thx!
hmmm a czytales tą instr progr do bascoma ze stronki mcselec? o ile mnie pamiec nie myli to gdzies w poczatkowych stronach bardzo precyzyjnie ktos opisal tą czynnosc....
wielkie dzięki za sugestie, w związku z tym, że dopiero intensywnie uczę się Bascoma, to dlatego nie zawsze jeszcze jestem w stanie na szybko doszukać się odpowiednich poleceń w helpie jak podany przez ciebie Instr ;) również odnośnie tych paramterów $hwstack, $swstack, $framesize i ustalania ich wartości nie jestem jeszcze w pełni świadomy jak z nich...
Witam,jestem świeżym użytkownikiem który zaczyna bawić się bascomem itp... Skoro tak, to wypada zapoznać się z funkcjami jakie oferuje Bascom, czyż nie :?: Sprawdź np. Instr(), Split(), ...
- czy praca równoległych timerów nie będzie jakoś na siebie wpływać (program przerywa pracę na skutek działania timera1 by precyzyjnie wyznaczyć czas, a tu w tym samym momencie dochodzi kolejne przerwanie od innego timera, i co wtedy) Timery działają niezależnie, ponieważ realizowane są sprzętowo. Nie będą na siebie wpływać. Program niestety (w tym...
Koledzy dzięki za odpowiedz. Zdecydowałem się na programowy PWM i teraz mam jeszcze jedno pytanko. Timera0 używam do generowania przerwań typu 100ms ,500ms,1s itp Oraz wykorzystuje timer1 do PWM. Jeśli instrukcję od programowego PWM wrzucę do Timera0 to wydaje mi się że rozsypią czasy przerwań czy dobrze myślę? Więc jedyna najsensowniejsza opcja to...
Temat ciekawy. Nie mam "gotowca" ale potrzebujesz zmienne: "Licznik" - ilość odczytów napięcia "Nap" - odczytane napięcie "licznik_zmian" "Wartosc" - 0 - gdy "Nap"<0,4V albo 1- gdy Nap>0,65V "wartosc_pop" - wartość z poprzedniego odczytu Licznik =0 Do ' pętla główna incr licznik call Odczyt_nap ' skok do procedury odczytu nap call sprawdz ' sprawdzenie...
To powinno odczytać cały bufor: Odczytaj_sprzetowy_uart: Uart_txt = "" Do 'Odbierz znak po znaku Kod = Inkey() Uart_txt = Uart_txt + Chr(kod) 'Zapisz w Uart_txt Bufor = Ischarwaiting() 'Sprawdź czy jest znak Loop Until Bufor = 0 'Zakoncz jeśli brak znaku Return Do wyłuskania danych polecam instrukcję Instr
Widzę że muszę trochę sprostować. 1. Nawet kosmicznie często wywoływane przerwanie zdąży się wykonać choć by nie wiem jak długo ono trwało, bo przerwania po wejściu w obsługę jakiegoś przerwania są blokowane i odblokowywane są dopiero po zakończeniu się obsługi tego przerwania. Więc twierdzenie że przerwanie nie zdąży się wykonać w ciągu 128us bo samo...
O ile mi wiadomo w Bascom-ie nie ma funkcji tokenizującej (jak np. STRTOK w C++). Musisz sobie napisać funkcję samemu używając funkcji Instr, Mid oraz Len
Spokojnie się da - zlikwiduj wszystkie nawiasy i popraw w jednym miejscu "tehn" na "then" i powinno działać. W Bascomie możesz stosować operatory logiczne OR, AND itd.
Zakładam że w tym twoim bascomie idea obsługi przerwania jest taka jak w c albo asm bo inaczej przecież być nie może. Przerwanie ma się wykonać jak tylko najszybciej jest to możliwe. W związku z tym żadne tam wyświelanie znaków na LCD nie wchodzi w rachubę a tym bardziej transmisja po I2C. Przerwanie ma ustawić co najwyżej flagę którą z kolei głowny...
"znów zamieni się na znak ASCII" Sam się nie zamieni.
tak jak pisał kolega wyżej 34/10=3 (pod warunkiem deklaracji jako liczba całkowita) 34 mod 10=4
Na forum pomagamy osobom które wykazują chęć nauki lub maja konkretny problem. Jak uruchomić zegarek z pełnym kalendarzem itd. jest opisane w Helpie przy instrukcji "Config Clock" Jeśli Ci się nie chce czytać lub nie masz czasu to zleć napisanie tego programu. Osoba z doświadczeniem napisze Ci go w jeden dzień z wszystkimi wodotryskami. Pisze to bo...
Zastawia mnie po co ciągle robisz warunek w warunku jak np. tu If Pinb.4 = 0 Then Waitms 1 Incr Setki If Setki = 10 Then Setki = 0 Incr Tys If Tys = 7 Then Tys = 0 End If End If End If Jak już mówiłem wcześniej, jeżeli zaprzęgnąłeś timer to wykorzystaj go do odliczania sekundy wtedy pętla główna zostaje do twojej dyspozycji i bez problemu tam umieścisz...
Elseif Pinb.0 => 30 And < 50 Then Elseif Pinb.0 => 30 And Pinb.0 < 50 Then Dalej nie widzisz różnicy?
To mniejwięcej "brzmi" tak: ... ;r16-wejście ;r17-rezultat rol r16 ror r17 ;... ;powyższe 2 instrukcje , są "odpowiednikiem" 4 poniższych instr. 51-ki ;a-wejście ;b-rezultat rlc a xch a,b rrc a xch a,b ;... Poza tym , jeśli ktoś zna assemblera na procki X , to "przejście" na procki Y nie jest chyba trudne :?: Piotrek
DDR to nie instrukcja tylko rejestr portów np. DDRB - rejestr określający kierunek portu PortB (wejście czy wyjście). W bascomie konfigurujesz np. Config portb.5=output lub np. config portb=input Po szczegóły odsyłam do dokumentacji procesora i języka Bascom.
INSTR(), LEN(), MID()
Przerwanie miałbyś z częstotliwością 32000Hz(8000000/250), gdybyś tylko przeładowywał Timer w przerwaniu. [syntax=basic4gl] Prztimer1: Load Timer1, 250 '<----- w tym miejscu na przyklad Incr Licznik If Licznik > 100 Then Licznik = 0 End If[/syntax]
Wszystkie informacje znajdziesz w datasheet układu lub tutaj na elektrodzie. Kwarc taki jak na schemacie, C1 najlepiej zastąpić trymerem, rezystory podciągające do SDA i SCL najlepiej 4k7. A0 można podłączyć do GND lub VDD (zmiana adresu, patrz datasheet). Warto dodać jeszcze kondensator 100nF blisko wyprowadzeń zasilających układu.
masz pewnie $sim wpisane na początku:>
Witam Szczerze mówiąc nie mam pojęcia czy ktoś napisał jakieś procedury do obsługi magistrali I²C przez LPT-ka. Trzebaby poszukać i popytać. Jeśli nic się nie znajdzie to trzeba przejrzeć specyfikację tej magistrali i poprostu napisać cały protokół od podstaw. Zwracam uwagę na fakt, że wyświetlacz pracuje przy mniejszym napięciu, tzn. poniżej 5V....
stk200/300 Ten jest pod LPT. Przykładowe programatory to: podróba STK500, USBasp. Na alledrogo kupisz poniżej 40zl.
... a gdyby tak w programie do zmiennej d podstawić żądaną wartość, a w przerwaniu sprawdzać jednokrotnie czy c=d?
To jest dosyć niewygodny sposób na przesyłanie zmiennych w postaci znaków ASCII i sam się nieco ograniczasz, bo pierwsza zmienna musi mieć zawsze dwa znaki, druga trzy itp... Jeśli chcesz troszkę bardziej uniwersalnie podejść do tematu to przesyłaj wartości zmiennych w ten sposób: PRINT XX,YYY,Z,KKKK czyli każda wartość oddzielona np przecinkiem. Później...
ad2. napięcia nie przekarzesz chyba ze bedziesz mial w procku przetwornik AC i CA. przekazać możesz stan logiczny np ( procek 8051 ) na p1.0 masz jedynke logiczna (5V) to możesz stan tego portu przeniś na inny pin np p3.0 bascomie robisz to chyba tak ( nie wiem dokladnie bo w bascomi nie siedzialem od 2003 roku) p3.0 = p1.0 a jaesli chcesz potrzebujesz...
Witam. Zaprogramowałem AVRa do odbioru sygnału RC5 według instrukcji w helpie. Układ odbiera sygnał lecz dopiero po 2 sekundach trzymania przycisku na pilocie. Czym to może być spowodowane?? Czy to zależy od kwarcu, czy może instrukcja GETRC5 nie jest doskonała?? Chciałbym sterować obiektem i takie opóźnienie nie jest zadawalające. Z góry dzięki za...
U mnie działa coś takiego: Odczytaj_sprzetowy_uart: Uart_txt = "" Do 'Odbierz znak po znaku Kod = Inkey() Uart_txt = Uart_txt + Chr(kod) 'Zapisz w Uart_txt Bufor = Ischarwaiting() 'Zakoncz jeśli CR lub brak znaku w buforze Loop Until Bufor = 0 Or Kod = 13 Return Odczytaj_uart: Bufor = Ischarwaiting()...
Zauważyłem iż w Bascomie nie ma czegoś takiego jak funkcje i nie wiem czy istnieje coś w stylu zmiennej lokalnej. Przez 8 miesięcy helpa w dodatku w j. polskim nie przeczytać? Hmm... Przeznaczenie: Rozpoczyna treść funkcji użytkownika. Składnia: FUNCTION nazwa [ ( parametr AS typ [, parametr AS typ] ) ] AS typ_rezultatu instrukcje...
Drogi administratorze- nmie wiem czemu został tytuł zmieniony. nie pytałem co znaczy instr Gosub tylko zapis w pierszym moim poscie z uzyciem Gosub...
dondu - totalnie mylisz pojęcia. BOD i WD to dwa zupełnie różne układy, wyzwalane zupełnie różnymi bodźcami. WD powinien być stosowany w każdej aplikacji, jako dodatkowe zabezpieczenie. I bynajmniej nie z powodów o których piszesz. Jeśli program może wchodzić w dziwne stany to jest po prostu źle napisany - rozwiązaniem jest napisanie go poprawnie. A...
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...
Z całym szacunkiem to jest to po prostu wioska. Nie zadałeś sobie trudu sprawdzenie biblioteki o której pisałem. Powinienem to tak zostawić , ale nie mogę na to patrzeć. Nie dość, że nie możesz używać standardowych instrukcji Bascom takich jak Lcddat, Showpic itd to jeszcze potrzebujesz 512 Bajtów na bufor.. Dyskwalifikuje to ten kod dla mniejszych...
a tego nie wie... powiem szczerze że sciągnąłem to z przykłądowego programu... nawet o tym nie pomyślałem Ale jeśli tak, to powinna sięwyświetlić chodziaż ta pierwsza literka W takim razie jakiej komendy muszę użyć? instr lub input? input - program się zatrzymuje (jakby się zawiesił i czekał na jakieś dane) instr - wyskakuje błąd
Po pierwsze - użyte procedury z innych bibliotek powinny się znaleźć w lini $EXTERNAL: [_I2C_RBYTES] $EXTERNAL _I2C_READ _I2C_RBYTES: Mov R17,R18 ; copy slave address Cpi R24,0 ; bytes to send Po drugie można wplatać instrukcje BASCOM tylko trzeba to zrobić z prefixem: *BASIC: waitms 1 Po trzecie chcesz coś wysłać, a zatem nie _i2c_rbytes...
Musisz dobrać taki kwarc, który da się podzielić tak by uzyskać częstotliwość pracy UART = 31250 Hz +/- 1% Komunikat MIDI składa się z 2 lub 3 bajtów. Jeżeli bajt ma ustawiony najstarszy bit to jest on (ten bajt) traktowany jako rozkaz a jezeli nie to są to dane do rozkazu (ogólnie dane są przesyłane w porcjach 7 bitowych). Dekodowanie jest dość złożone,...
Gdzie są takie ograniczenia co do ifów? Pokaż mi miejsce w instrukcji bascoma gdzie o tym pisze...
...Gdy z terminala wysyłam 2 to procek zwraca mi 50 gdy 1 to 49 gdy 3 to 51 itd Pewnie gdyby a była single to by było O.K. "Kłaniają się" typy zmiennych. Kiedy do terminala wpiszesz 2 , to po łączu szeregowym do uC , jest wysyłany kod ASCII cyfry 2 , czyli dziesiętnie 50.Instrukcja print , "przetwarza" owe 50 na ciąg znaków ASCII reprezentujących liczbę...
Poszukaj w hepie bascoma instrukcji Config Pin, oraz w dokumentacji procesora jak się włącza pull-upy.
Napisz tak: Dim Zmienna As Byte Zmienna = 0 Config Intx = Low Level | Rising | Falling [ | Change ] 'Konfiguracja reakcji na sygnał przerwania 'za x podstaw nr przerwania wybierz jeden ze sposobów pobudzenia kocówki uC Enable Interrupts 'Uruchomienie przerwań globalnych Enable Intx 'Uruchomienie przerwania INTx On Intx Obsluga_przerwania 'wskazanie...
A w ogóle to ten input zadziała Ci tylko raz, po uruchomieniu programu (poza pętlą Do...Loop), ponadto w przypadku takich urządzeń nie robi się "eliminacji drgań styków". A ma szanse się skompilować i ba, nawet działać, tylko chyba bascom nie dopuszcza porównywania stringów wprost, dlatego zastosuj odpowiednio skonfigurowaną funkcję INSTR. Ale pierwsze...
Zewnętrzny RAM można dołączyć tak samo jak zewnętrzny Eprom (np. z programem), czyli do portów P0 i P2, przy czym do portu P0 dołącza się zatrzask np. 74LS373, służący do zapamiętania części adresu. Jest to typowy schemat, znajdziesz go w literaturze. Do programowej obsługi zewnętrznej pamięci RAM, służy instrukcja MOVX, w asemblerze, natomiast w Bascomie...
... Może Bascom w ogóle nie potrafi tej 16tki odczytać? Pozdrawiam, Damian. Bascom potrafi , tylko Ty nie rozumiesz jak działa instrukcja I2creceive :( A działa tak: I2creceive 68 , W 'i2cstart 'i2cwbyte 68 OR 1 , czyli 69 'i2crbyte W 'i2cstop Z tego jasno wynika , że zawsze odczytasz tylko jeden bajt i zawsze będzie to pierwszy bajt z Twojego PCF-ka...
To proste, wykorzystaj warunek. IF wyrażenie then instrukcja else instrukcja end if
Wykorzystują przy tym analizę przebiegu programu na podstawie banalnie prostego założenia - program zawsze startuje z adresu 0x0000 (zarówno '51, jak i AVR) i dalej disasembler śledzi w którym miejscu znajduje się kod podążając za wszystkimi instrukcjami skoków. Tylko ty mówisz o "inteligentym" disasemblerze, czy połączeniu disasemblera z symulatorem,...
Teoria powiadasz. Ciekawe co czytałeś... Mimo iż wyczuwam lekki roszczeniowy charakter wypowiedzi to postaram Ci się coś jednak wytłumaczyć. Kiedy pisałem o podpisywaniu zmiennych to miałem na myśli takie wysyłane osobno. Od razu uściślijmy, że dla takich wartości dwubajtowych jak Word łatwiej to przesłać jako Hexstring. Długość stringa zawsze będzie...
bascom instr texas instr brother instr
prądnica spawalnicza pralka wlewa wylewa wodę mostkowanie zasilacza
Jak odblokować Nokia 500 Mobile Security? Jak zmienić język w aparacie fotograficznym z chińskiego na angielski