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...
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...
Nie taka konstrukcja jest jest niepoprawna. Obsługa przerwania musi być zakończona instrukcją Return. Zamiast Goto ustaw flagę i sprawdzaj jej stan w pętli głównej. Jeśli warunek się spełni to wtedy skocz do podprogramu.
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
Witam, Program w zasadzie jest ok, jedyne do czego bym się doczepił to umieszczenie polecenia "Start Watchdog" w głównej pętli programu, zamiast przed, a w pętli tylko polecenie "Reset Watchdog". Po drugie widać, ze za bardzo nie zależy Ci na oszczędności prądu (zegar 8MHz) to ja bym nie wyłączał przetwornika adc, bo po włączeniu pierwszy pomiar jest...
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.
No bo zmiennej I2_single przypisujesz wartość całkowitą. I2 jest przecież bez części ułamkowej.
No jednak nie do końca dostrzegłeś swój błąd, owszem Set Portb.6 jest zbędne w podprogramie Pr_1: i dlatego je usunąłem, ale to nie to powodowało nieprawidłowe działanie tego programiku. Błąd miałeś w linii z Debounce porównaj jak ona wygląda w twoim pierwszym poście a jak w moim. Poczytaj o rejestrach określających kierunki portów, rejestrach wejściowych...
Elseif Pinb.0 => 30 And < 50 Then Elseif Pinb.0 => 30 And Pinb.0 < 50 Then Dalej nie widzisz różnicy?
Ja używam takich kodów do odblokowania tych pinów, zaraz po instrukcji konfiguracji zegara programowego: 'odblokowanie pinów PC6 i 7 dla procesorów atmega16/32: Tccr2 = 0 Assr = 0 Timsk = 0 Tifr = 0 Oczywiście wszelkie dalsze konfiguracje innych timerów powinny znaleźć się po tym kawałku kodu.
widze ze chyba nikt nie rozumie kolegi. Mi sie chyba w koncu udalo. Chodzi tobie jak zbudowac ten prosty programator i ustawic go w bascomie. Tu masz linka http://www.avrprojects.net/articles.php?...
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
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.
$SIM to informacja dla kompilatora, aby generował "puste" instrukcje WAIT aby przyspieszyć symulację
INSTR(), LEN(), MID()
Jeśli w programie będziesz miał błąd, to nie przejdzie on procesu kompilacji, czyli w efekcie i tak nie dostaniesz pliku wynikowego (bin/hex), który wgrywasz do procka.. Pod warunkiem, że będzie to błąd składniowy. Najgorsze są właśnie błędy o których kompilator nie informuje. Kompilacja przebiega poprawnie, a program i tak nie działa jak trzeba. Prosty...
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
... 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...
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...
... 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...
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()...
Drogi administratorze- nmie wiem czemu został tytuł zmieniony. nie pytałem co znaczy instr Gosub tylko zapis w pierszym moim poscie z uzyciem Gosub...
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...
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...
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]
34 podziel przez 10 a zostanie Ci 3. Reszta z dzielenia chyba funkcja Mod da Ci 4.
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
Dzieki wszystkim za odpowiedzi i zjechanie na offtopic (rownie ciekawy). Wiec reasumujac: Wyglada na to ze popularnosc u hobbystow AVR to zasluga BASCOMA, PIC'a - uniwersalnosc programatorow i niskiej ceny mcu TI natomiast nie przypadl hobbysta ze wzgledu na nieuniwersalne prorgamatory, "obudowy nieprzyjazne szybkiemu prototypowaniu" i nastawienie bardziej...
Gdzie są takie ograniczenia co do ifów? Pokaż mi miejsce w instrukcji bascoma gdzie o tym pisze...
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...
...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.
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...
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...
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,...
To proste, wykorzystaj warunek. IF wyrażenie then instrukcja else instrukcja end if
tak jak napisał kolega bascoma AVR czeka na początku instrukcji writeeprom czy pamięc jest gotowa do zapisu. a tak wogółe to ja stosuje zmienne typu eprom gdy chce zapisaccoś do eproma. oczywiście należy uważać z ich wykożystaniem (nigdy w pętlach) dim XXX as Eram Word na zmiennych eRam nie mozna stosować operacji tylko XXX = coś lub coś = XXX
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...
instr bascom texas instr brother instr
karta pamięci uszkodzona pralka spalona grzałka amica nokia support
hulajnoga frugal problemy delphi ds150e programy
Midland Alan 87 Modifications: Clarifier Unlock, Audio, Power, Band Upgrades, EPT3600 PCB Behringer Hellbabe HB01 – zamiennik trymra TIMER ADJ 1 MΩ do regulacji czasu wyłączenia