Witam. Mam pytanie w jaki sposob zanegowac zmienna nie wykorzystując do tego celu innej zmiennej, albo wogule jak mozna (mam pewien pomysl ale moze ktos ma lepszy)? Czy jest jakas instruckja w bascomie bo przgladam sie na tego helpa i nie widze. Mam sprawę tego rodzaju, że np. gdy moja zmienna Numer=8, czyli to jest 1000, ja muszę z niej zrobic 0111...
Pomóżcie koledzy, bo pomroczność jasna ogarnęła albo mnie, albo kompilator Bascoma. Taki fragment kodu: [syntax=basic4gl] Config Pind.0 = Output Led_open Alias Portd.0 Dim Zawor As Byte Dim Miganie As Bit Led_open = Not Zawor.1 And Miganie [/syntax] Czemu to się właściwie nie chce skompilować? Odpowiedź kompilatora brzmi "104 3 parameters expected"...
Sprawdze to przy chwili czasu. W każdym razie napisalem program w asemblerze był mi potrzebny na obrone i chodził bez problemu. Z bascomem dałem sobie spokój. W każdym razie próbowałem też w pętli czytać za pomocą getad i efekt też był taki że powodował zawieszenie. Wstawaiłem negacje portu co jakiś czas w pętli i też się nie wykonywała. Wersji powyższegoo...
Brakuje tutaj moim zdaniem warunku który by się wykonywał jeśli stany na podanych koncowkach byłyby inne od oczekiwanych. Mniej wiecej chodzi mi o to, żeby program zmienic tak: Do If Pind.1 = 1 Then Portb.7 = 0 Else Portb.7 = 1 If Pind.2 = 0 Then Portb.5 = 1 Else Portb.5 = 0 Loop End Można też zrobić tak: Do Portb.7 = NOT Pind.1 Portb.5 = NOT Pind.2...
Nie chce zalac maszyny woda. Dlatego zrezygnowalem z lodu. Sprawdzilem ta negacje i faktycznie we wczesniejszym moim rozumowaniu znak rozpoznawal poprawnie jednak warosci byly bledne. Moge jeszcze zapytac skad bierze sie ta negacja i odejmowanie jedynki? Nie moge do tego dojsc gdyz mnie (na przykladach z dokumentacji) wynika, ze aby otrzymac poprawny...
a jak to zrobić w bascomie ?
Masz negację (nie mam pojęcia skąd) na linii TXD procesora. Wstaw tam jakiś negator czy coś (tranzystor w układzie wspólnego emitera). W ogólę się zastanawiam skąd tam masz negację. Może korzystasz z programowego UARTa? Wtedy w konfiguracji wystarczy dopisać „Invert”.
tu nie chodzi tylko o poziom sugnału (chociaz też zwróc na to uwagę). Tylko chodzi o to że gps daje sygnał zanegowany, potrzebny jest jakis negator i dopiero wtedy jest sygnał ok. Możesz spróbować w bascomie zastosować programowy UART , i ustawić go w opcji inwerted to wtedy moze uciekniesz od koniecznośći negacji. Z tym że sprzętowy UART napewno jest...
Przeanalizuj następujące zjawisko. Na pin wystawiasz jedynkę ale ten pin jest tak obciążony że faktycznie na nim jest np 1.5V co stawia go w sytuacji zera. Teraz rozkazem, zaneguj wartość na danym pinie i zanegowaną wartość wystaw na nim robisz tak: odczytujesz co jest na pinie a przecież mimo że ustawiłeś go na jedynkę to ze względu na obciążenie masz...
Witam W sumie bardzo prosto. Trzeba to zrobić na timerze. Przykład. $crystal=4000000 Config Portb.0 = Output : Wy Alias Portb.0 Config Timer0 = Timer, Prescale = 1 Load Timer0, 66 On Timer0 Negacja Enable Timer0 Enable Interrupts Start Timer0 Do Loop Negacja: Load Timer0, 66 Wy= not Wy Return Wartość ładowana (66) do timera 0 decyduje o częstotliwości....
Chyba "config" ma tam nie byc, config konfiguruje port jako wejsciowy lub wyjsciowy, a tobie chyba chodzi o stan wysoki na porci i stan niski?? portb = not portb to jest negacja czyli na porcieb ustawiasz bity odwrotnosci bitow portub ;) a dziala to wogole? bo nie mam przy sobie kompilatora zeby spr. Dodano po 2 $regfile "m8def.dat" $crystal...
Dziękuję za odpowiedź, dzisiaj będę testował czy jest ok. Jeżeli to możliwe, prosiłbym o jakiś większy sprawdzony kawałek programu co by mi ułatwiło sprawę. Mam jeszcze pytanie czy konfiguracja COM1 (sprzętowego dla M8 i M16) jest dobra czyli: prędkość 19200, transmisja niesynchroniczna, bit parzystości: nieparzysty, 2 bity stopu, 8 bitów danych i opcja...
i co z tego ze pije, za swoje pije!. Z mamą i bratem mamy rente na spółe :P fakt faktem że zapomniałem o wyświetlaniu od końca (po siarce z Machowa są takie efekty), nie mnie idea postępowania chyba jest oczywista. co do mnożenia przez -1. Negacja i inkrementacja to raczej robiona jest sprzetowo. Ciekaw jestem ile bascom potrzebuje cykli na taki zabieg
Schemat na razie jest na kartce , za nim zacznę klepać chce mieć wszystko pewne co i jak :) OK więc jeśli trzymać się pierwszej ideii , to kazda anoda wiersza byłaby połączona przez rezystor do jednego wyprowadzenia uC i wybierany znak byłby tworzony przez negacje ( w sensie jesli nogę od litery A symbolizuje 11111111 , to zapalenie wszystkich diod...
na oscyloskopie udało mi się zauważyć że po resecie uC przez bardo krótki czas(ledwie zauważalny) pojawia się sygnał prostokątny[tak mi sie przynajmniej wydaje](czyli jakieś dane z uC wychodzą), tylko dlaczego tak krótko i tylko jednorazowo edit: zauważyłem też że pomyliłem linię data z clk(względem programu bascom wg którego podłączałem) zamieniłem...
PortX (x dowolne) zawsze zawiera wartość jaką wystawia procesor na wyjście (dla pinu wyjściowego to będzie stan wysoki/niski, dla wejściowego pullup/open), natomiast PinX przy odczycie daje rzeczywisty stan panujący na pinie. Warunki zewnętrzne są w stanie zmienić tylko wartości w PinX (wpisanie wartości do tego rejestru w zależności od procesora nie...
Witam Złożyłem sobie prosty układzik do komunikacji z autem, założenie było takie, możliwość wysyłania kodów odpowiedzialnych za podgłaszanie, ściszanie itp, oraz odbiór paczek danych i wyświetlanie na lcd podpiętym do atmegi. Druga część wyszła znakomicie, po trzeciej poprawce idealnie odbierał kody z auta, jednak nadawanie nijak mi nie wychodzi......
Witam serdecznie kolegów Najpierw załączę plik: po lewej stronie widoczne są podłączenia do uC. Te kropki są przypadkowe czy są to negacje? Muszę podłączyć sygnał resetu do uC, które to wejście jest negowane, (RXD i TXD nie są negowane na wejściu) jak poprawnie odczytać to połączenie? Druga moja wątpliwość, podłączenie do DB9, zazwyczaj piny 6,4 i 7,8...
Ok, widać nikt inny się nie pofatyguje żeby pomóc. Zrobiłem dodatkowy układzik na NE555. Fotokomórka daje sygnał - zasilanie do układu z NE555, a ten daje jeden 1s impuls. Do tego mały dodatek w programie (negacja tego sygnału) i jakoś to wszystko działa.
Ilmarinen ma rację. Ten program trzeba napisać lepiej. Nawet teraz widzę że można dodać ulepszenia. 1) Program powinien mierzyć długość bitu. Obecnie jest to ustawione na sztywno na taktowanie 8MHz. I tu jest problem: piloty maja rozrzut, a wewnętrzny generator RC AVR ma zbyt duże wahania częstotliwości żeby to super działało. 2) Mnożenie i dzielenie...
W nowszych atmegach np. m644, m48, m88 możemy wykorzystywać zapis "1" do negacji stanu portu. 14.2.2 Toggling the pin Writing a logic one to PINxn toggles the value of PORTxn, independent on the value of DDRxn. Note that the SBI instruction can be used to toggle one single bit in a port.
Proszę bardzo, oto program. Jeśli chodzi o obsługę multipleksu to jest ona zrealizowana, że najpierw jest zatrzaskiwana wartość w rejestrach przesuwnych, potem zaświecany dany poziom wraz z odpowiednią wartością dla niego i w tym samym czasie do rejestrów przesuwnych ładowane są już kolejne dane dla kolejnego poziomu i tak w kółko. [syntax=basic4gl]$regfile...
Witam goreckidiy. Twój projekt spełnia funkcę, którą chciałeś osiągnąć. Ale jest ale :) Niezwykłe zbiegi okoliczności sprawiły, że to działa (mam nadzieję) prawidłowo. Spójrz na zdjęcie. W programie masz coś takiego:[syntax=text]'*********WAŻNE!!!*... data1 = data_in - 1048574 'tyle suwmiarka ma gdy wyzerowana w pozycji zsuniętej (należy wpisać!)...
Sprawdzasz warunek "czy podpięta ładowarka i czy odtworzony dźwięk" Po odtworzeniu dźwięku ustawiasz flagę "pipczenie" na wykonane. Resetujesz flagę "pipczenie" po odpięciu ładowarki. Bardzo dobry pomysł. Jedna uwaga: i czy nie odtworzony dźwięk , czyli negacja tego znacznika albo znacznik w odwrotnej logice.
No, no, no. Nie sądziłem że tak szybko uzyskam odpowiedź na zadany problem. Zaczne od podziękowania: paluszastemu za trafienie w dziesiątkę, ponieważ faktycznie po przestawieniu THEN w linie z warunkiem i pozbyciu się jednego endif kompilator już nie widział błędów, a także podziękowania dla Ahcingi za naprowadzenie mnie no dobry tok myślenia. Rzeczywiście...
Witam, Mam problem z napisaniem do końca kodu w środowisku Bascom, do wyświetlania odpowiednich segmentów na wyświetlaczu. Poniżej zamieszczam to co udało mi się uzyskać do tej pory, i instrukcje co powinnam uzyskać po ukończeniu kodu.
Witam, Ostatnio uczyłem się pisać w BASCOM-ie ale postanowiłem, że będę się jednak uczył w C. I mam problem w zrozumieniu tego warunku: [syntax=cpp] if(!(PINC & 0x01)) /* jeżeli przycisk 1 wciśnięty */ [/syntax] Próbowałem sam sobie wytłumaczyć i doszedłem do takiego wniosku: Jeżli PORTC mam skonfigurowany w ten sposób: [syntax=cpp] DDRC = 0x00; /*...
Sam procesorek w zupełności wystarcza do prostej transmisji 30 różnych sygnałów (nawiasem mówiąc najprostszy Atmelek serii AT90S2313 z pamięcią 1k słów potrafi wyczyniać znacznie bardziej skomplikowane cuda, a co dopiero 4 lub 8kB!). Nawet używając Bascoma free z limitem objętości kodu (do 1kB) bez problemu zmieścisz cię w około 0.5 kB. To do procesorków....
Witam Mam problem z sterownikiem do lampek choinkowych, układ powstał w oparciu o kit AVT2770. Jest sterowany uKontrolerem AT89C2051. Problem w tym. że P1.0 uKontrolera powinien sterować optotriakiem (podawać stan niski) jednak nie steruje. Przy wyciągnietym uK z podstawki i zwarciu końcówki P1.0 do masy lampki się zapalają. Program napisany w Bacomie...
Witam, W temacie Open "comd.3:4800,8,n,1,inverted&quo... For Input As #1 Odczytaj_gps: Gpstxt = "" Przerwanie = 0 Do ' W tej pętli szukaj znaku "R" (82). Ona zsynchronizuje odczyt $GPRMC ... Gps = Inkey(#1) Incr Przerwanie Loop Until Gps = 82 Or Przerwanie = 1024 If Gps = 82 Then ' Jak znajdziesz to odbierz...
Od razu przetwornik :) Wystarczy jeden pin mikrokontrolera i styki pomocnicze przekaźnika połączene w iloczyn logiczny AND - czyli jezeli zwarte są wszystkie styki przekaźników to warunek jest spełniony. W tym przypadku wykorzystujemy styki normalnie zwarte i jako stan logiczny 1 zwarcie do masy czyli w tym prtzypadku będzie negacja. Skoro pozostajemy...
Ad 1 - poszukaj na temat klawiatury matrycowej - powinno Ci wystarczyć. Ad 2 - Jeżeli zrobisz tak jak ja, że włączenie i wyłączenie to 2 osobne zdarzenia to pozbędziesz się problemu przy większej ilości przekaźników. pętla szukania zdarzeń: //FALSE = 0, TRUE = 1 int rels = PORTX; //Nie PINX!!, odczytujesz poprzednio zapisana wartosc int akcja = 0; //0...
Kod wziąłem stąd: W sumie też bym wolał to zaprogramować w C. Pytałem o Bascoma, bo znalazłem w necie instrukcje jak programować w Bascom AVR. Ale OK, już ściągnąłem WinAVR. Jak tam ustawić piny mikroprocka, żeby zapalić chociaż każdą diode po kolei? zobaczyć czy układ działa Bez przesady, masz to kawałek wyżej napisane jasno i wyraźnie przez dondu...
To już mi wszystko wyjaśnia,ale.... Znalazłem w bascomie schemat właśnie takiego programatora (stk-200) i jest ok,tylko że... Tam jest szejść przewodów do procka: 1.POWER (VCC) 2.RESET (w negacji) 3.GND 4.MOSI 5.MISO 6.SCK ...i Pierwsze trzy to nie mam pytań ale gdzie podłączyć MOSI MISO i SCK ??? Takich wyprowadzeń ten pro nie ma....
Witam. Spróbój zrobić na początku programu najlepiej przed główną pętlą "do loop" Reset P3.2 Reset P3.3 i powinno wszystko być ok. Acha jak byś miał symulator to ten programik do generowania pwm nie śmiga na nim (źle interpretuje instrukcję not - negację). A z czasami w bascomie jest różnie zależy od procesora w twoim komputerze choć mniejwięcej się...
znowu troche asm-a. zrób tak ( np ): zmiennej d1 - pierwszy odczytany bajt zmienna d2 - drugi odczytany bajt 1 - zerujesz w pierwszym bajcie 4 najmłodsze bity ( mnożysz logicznie przez 11110000b ) 2 - wymieniasz mładszy pół bajt drugiego odczytanego bajtu z młodszym półbajtem pierwszego odczytanego bajtu ( ciekaw jestem ile razy bedziesz czytał ten...
może coś takiego if(y & 00000100) x = x | 00000100; else x = x & 00000100; Oczywiście że takie konstrukcje są ok (chociaż ta akurat ma błąd bo brakuje negacji w drugim warunku) ale cały czas są to b.skomplikowane rozwiązania. Mój problem polega na tym że potrzebuje wielokrotnie z takich operacji korzystać, mam napisany program w pierwszej wersji w...
Mam pytanie odnośnie prawidłowego (powiedzmy "profesjonalnego") algorytmu obsługi enkodera. Posiadam enkoder o rozdzielczości 2500imp/obr zintegrowany z silnikiem krokowym (ezi-servo). Wszelkie wcześniejsze próby na Atmega16 i bascomie (wiem, wiem ale dopiero zaczynam z programowaniem...), przy częstotliwości z jednego kanału ok 12khz i jednym przerwaniu...
Johny_szczecin myślę, że niepotrzebnie komplikujesz problem. Bez różnicy jest czy wyślesz coś UART-em czy bedziesz sobie negował pin do którego będzie podłączony timer np. NE555 "wykorzystywany do nośnej". Następna sprawa. Skoro chcesz użyć mikrokontrolera to po co chcesz sprzętowo negować wyjście z odbiornika podczerwieni ? Przecież można to zrobić...
Widzisz ja zajmuje sie programowaniem w Assamblerze nie w c(BASCOM), moje pytanie bardziej brzmialo jak ustawic rejestry od licznika(np T0) zeby pracowal on jako generator, reszta ukladu(tj ladowanie itp, to juz wiem jak wykonac), otoz generator ten ma miec T=0.02s(czyli 50Hz), ma to byc przebieg prostokatny o wypelnieniu 50%, negacje tegozsygnalu bede...
Wartości binarne są napisane dobrze (Bascom) ,żeby sprawdzić zamiast Timera1 , napisałem pomiar napiecia z ADC(5) no i jest nieciekawie, podstawiałem wartoci jako stałe no i wartoći wyswietlają sie z krotnością liczby 6 . dzieliłem mnozyłem i nic pokazuje bzdury .Teraz nie wiem ale czy czasami nie jest potrzebna negacja do zaznaczenia ważnych bitów...
Czytam, czytam. Akurat tam zaglądam nad wyraz często - wiem jak poustawiać bity, itd - moje pytanie tyczyło się głównie wydajności prądowej, itd, prawda? ;) Nie programuję w C. Nie chcę. Wystarczyło mi nauki assemblera. C, no cóż, może kiedyś. A Bascom nigdy :D Co do kodu - wiesz ilu programistów popełniało samobójstwa przez intuicję? ;) Nie no, żartuję....