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...
ps2. Jakie kontrolery 8 bitowe (firma) sa najczesciej wykorzystywane w przemysle? PS. Co do przemysłu to z tego co wyczytałem : Renesas, Motorola no i PIC Ponieważ rozebrałem już niejedno urządzenie przemysłowe (automatyka zwłaszcza) to śmiem twierdzić, że raczej jest to tandem: ST i Motorola. Choć widziałem też kasetę synoptyczną na ATmega128 :D z...
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.
Ten programik u mnie kompiluje się bez błędu, używam pełnej wersji BASCOM'a 2.0.7.4. Istnieje możliwość że masz uszkodzone pliki LIB, spróbuj zainstalować Bascom'a na nowo.
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...
Albo używasz jakiejś archaicznej wersji Bascoma, albo masz babola w programie w całkiem innym miejscu - obstawiam to drugie. (choć praktyka pokazuje że wielu ludzi z lubością używa starych wersji kompilatorów a później się dziwi że to i owo im nie działa na nowszych prockach) Bo całkiem normalnie daje się kompilować obsługę RC5 w Bascomie z użyciem...
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.
Tak współpracuje z Bascomem - Bascoma trzeba tylko odpowiednio skonfigurować. mam tylko pytanie czy styki na wyjściu programatora podłączamy bezpośrednio do pinów procka czy trzeba jeszcze jakieś elementy Nie potrzeba dodatkowych elementów - podłączasz bezpośrednio do procka.
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...
Przerwanie przerwie wykonanie instrukcji Wait. Po wykonaniu podprogramu obsługi przerwania uC dokończy wykonanie instrukcji Wait. Wniosek - instrukcja Wait nie wstrzymuje działania uC.
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
"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...
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...
tak jak pisał kolega wyżej 34/10=3 (pod warunkiem deklaracji jako liczba całkowita) 34 mod 10=4
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...
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?
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.
Jeżeli we wszytkich IF występuje to samo sprawdzenie, to trzeba go zrobić raz na początku, co uprości kod: Zamiast: If M1 = 1 And K = 1 Then test.0 = 1 Else If M2 = 1 And K = 1 Then test2.0 = 1 Else If M3 = 1 And K = 1 Then test3.0 = 1 End If End If End If Czytelniejsza konstrukcja: IF K=1 THEN If M1 = 1 Then test.0 = 1 Else If M2 = 1 Then test2.0 =...
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.
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?...
twój LCD jest na sterowniku zgodnym z HD44780 czyli powinień smigać bez problemu... Czy masz jakiś problem z wysterowaniem tego LCD ? Działa ilaczej czy coś innego ? pozdr KN
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
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.
$SIM to informacja dla kompilatora, aby generował "puste" instrukcje WAIT aby przyspieszyć symulację
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
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....
F4, wybrać typ procesora tak jak pisali koledzy wyżej i kliknąć to: http://obrazki.elektroda.net/9_125426753... A potem kliknąć „Write Buffer to flash ROM" (jest 2 przyciski w prawo).
INSTR(), LEN(), MID()
... a gdyby tak w programie do zmiennej d podstawić żądaną wartość, a w przerwaniu sprawdzać jednokrotnie czy c=d?
Kabel LPT to jest najzyklejszy kabel drukarkowy, cena myślę, że nie przekracza kilkunstu złotych. Jeśli chodzi o programy, to ja jak narazie programuje w Assemblerze i używam do tego środowiska programistycznego AVR Studio 4. Assembler jest dość trudnym językiem, ale umożliwia za to całkowitą kontrolę nad pisanym programem i fukcjami uProcesora. Do...
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...
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...
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...
instr bascom texas instr brother instr
sprawdzenie hydrostatu electrolux czerwona niebieski pasek antena nawigacja
dekoder esperanza recenzja stacji lutowniczej
Rejestrator kamery nadaje po DMZ - przyczyny i rozwiązania MAN TGX 18-460 Euro 6 - Błąd EBS 5 00789-04