Tak jak napisał kolega wyżej... Jeżeli potrzeba więcej niż jeden bit to przez maskę bitowa zmienna = portA & 0x1F
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]
LED5W sprawdziłem twój pomysł, pozmieniałem tylko porty i otrzymuje różne liczby, bez zasady. Czyli wg. Ciebie napisałem generator liczb losowych? :P Zawsze jest jakaś zasada. ;) Kod jest poprawny. Jak się zachowuje układ? Czy przycisk=0, gdy żaden przycisk nie jest naciśnięty? Czy sprawdzasz zmienną tak jak poprzednio (print)? Zmienna może być odczytana...
Można. Np. tak: Zmienna = Lookup(liczba,Tabela) Portb.0 = Zmienna.0 Portb.1 = Zmienna.1 Portb.3 = Zmienna.3 Portb.5 = Zmienna.5 Portb.6 = Zmienna.6 Portb.7 = Zmienna.7 Portb.2 i Portb.4 nie będą zmieniane.
01 czy 1 ? Jest to wartosc bcd czy normalna od 0 do 255? (sory na c sie nie znam) Ja bym to zrobil tak (i chyba tak zawsze robilem i dziala) Iput i zapisywal zmienna odebrana do stringa, a nastepnie ja przemienial na normalny byte za pomoca val()
mnie akurat nie chodziło o takty na konwersje potrzebne a raczej o niepotrzebnie zajmowane bajty Jak wiadomo bascom jest pamięciożerny a program pewnie ma coś więcej do zrobienia niż tylko odbiór jednej liczby Poza tym po poleceniu inputbin jakas_zmienna jest odbierane tylko tyle bajtów ile ta zmienna zajmuje Ponieważ nie trzeba robić dodatkowych zabiegów...
Jeśli chcesz odczytać pojedyńcze linie to stosujesz np, ????= pind.2, a jeśli chcesz odczytać cały port to piszesz np. zmienna= Pind Pozdrawiam
Czy idzie w Bascom zrobić coś takiego dim Zmienna as byte Zmienna = 127 Porta = Zmienna
Stan_portu Alias Portb To ma być oddzielna zmienna dla porównania czy stan portu się zmienił.
Dzień dobry, nie wyczuwam jednak kiedy PORTD.5=1 a kiedy SET PORTD.5, trudno. Wiem na pewno, że dodanie SET PORT pomogło a stosowanie przeze mnie Zmienna =1 czy 0 nie daje właściwych rezultatów nawet jak zmienna jest aliasem portu docelowego. Tyle mogę stwierdzić ja :)
W Bascomie jest do tego specjalna instrukcja Zaglądnij do Helpa na polecenie Pulsein zmienna - tu znajdzie się nasz wynik w mikrosekundach PIND - to port do jakiego się podłączymy 1 - pin portu do jakiego jesteśmy podłączeni 0 - wybieramy czy chcemy obliczać do czasu pojawienia się stanu niskiego, czyli 0 czy wysokiego czyli zapiszemy wtedy 1
Można to zrobić w bardzo prosty sposób: Komenda GETRC Przeznaczenie: Określa wartość zmiany rezystancji lub pojemności. Składnia: zmienna = GETRC( port , numer ) gdzie: zmiennazmienna typu Word w której znajdzie się wynik pomiaru, portnazwa portu procesora, np.: PIND, numernumer końcówki do której podpięty został obwód RC. Schemat: pinx ----[fotorezystor]------|...
Odczytać musisz cały port B a potem zerować 3 najstarsze bity bo one mogą powodować zamieszanie. Zmienna oczywiście bajtowa. porównujesz potem zmienną z konkretnymi wartościami. Czyli masz 16 warunków sprawdzających jaki klawisz został wciśnięty.
O to mi chodziło. Czyli jedna zmienna musi być. Czasami najprostsza rzecz najtrudniej przychodzi do głowy. ;) Dzięki
ale Z1 to jest zmienna przecież. Pewnie w programie zadeklarowana jako byte.
Tak wiem, tylko nie wiem jak to napisać w kodzie:) Na razie używam timer1 jako przerwanie do programowego pwm, to dziala, teraz pracuje nad ulepszeniem kodu bez wait, jeżeli możesz pomóc to skróciło by to moje męki w pisaniu nieprawidłowych komend. Żeby dobrze sie zrozumieć, chciałbym napisać coś w stylu Set port(zmienna)=L1,L2,L3.... nie if(zmiennna=100)...
Co to jest to 'disp1'? czy jest to jakas zmienna czy alias jakiegos portu np. portb? Bo jezeli zmienna to sie nie dziw program nie ma szans przepisac jej wartości na port, gdyż nigdy nie wychodzi z pętli.
Witam, Do wejść Portu mam podłączone 5 odbiorników zbliżeniowych. Odczytują zagłębienia w tarczy kodowej. Niestety nie są one uporządkowane tzn bit0 na tarczy jest przypisany do PORTx.4 a bit1 do PORTx.2 itd Próbowałem wcisnąć do zmiennej typu string *6 odczyt z poszczególnych czujników na zasadzie I = $bit5; $bit4; $bit3.... a później przekształcić...
Coś enigmatycznie i mało przejrzyście to tłumaczysz napisz jakio rozmiar ma zmienna i co ma zrobić . Jeśli chcesz żeby robiła operacje na porcie możesz to osiągnąć przez wybór typu"case" lub zmienna tablicową czyli w zależności od pobranej zmiennej wybierasz wartość z tablicy i wysyłasz ją na port
Nie masz wyjścia, jak zacząć bawić się AVRStudio ... :D Bascom potrzebuje SRAM-u, którego ten procek nie posiada... A kodzik, proszę bardzo, ale za jego kompatybilność z Bas-monster nie odpowiadam ;) : #include "m8515def.inc" ; Prohibits use of non-implemented instructions (ATmega8515) .cseg ;—————R...
Przeczytałem to co jest wyżej napisane i... nie rozumiem co chcesz zrobić :) Co to znaczy: Potrzeba mi zapamiętać max. 4 liczby które będą następować po sobie dość szybko jednak Atmega potrafi je zdekodować bo jak dobrze się przypatrzę to liczby się zmieniają dobrze, i więc właśnie niech ktoś podpowie, co dopisać by procesor zapamiętał liczby i ustawił...
O ile dobrze zrozumiałem idee to cyklicznie negujesz wartość poprzednio wpisną do portu. Nie znam AVR ale może to być taki przypadek jak w 51 , Ustawianie portu polega na wpisaniu wartości do rejestru, ale odczyt następuje z pinów procka. Podciągając lub nie pin rezystorem do +Vcc a sterując zerem, to nawet ustawienie pinu na zero przy odczycie zwróci...
...a tak z ciekawości zapytam jak długi zadeklarowałeś ten string LINIA ??? skoro jak rozumiem obsługujesz zapewne SMSy. To chyba długość co najmniej 160 hmmm ??... U mnie , zmienna Line ma rozmiar 30B , ponieważ pobieram do niej tylko ... jakby tu powiedzieć ... mnemoniki komend AT i ich parametry , a SMS-a dekoduje "w locie" , w czasie przerwań od...
Pisze w ASM i bascom mi nie znany. Napisze to w basicu. To twoje jest troche pokrecone. P ;przycisk 1- nacisniety ; 0-puszczony S ;wy portu 1- swieci ; 0-zgaszony C ;zmienna odliczajaca czas - 1bajt ;proc zalaczajaca swiatlo na 30 sek if P=1 then C:=30 endif ;tutaj proc. odliczajaca czas 30 sek ;proc wywolywana w przerwaniu co 1 sek np. od T0 ;wczesniej...
Jeżeli to ma nic nie robić tylko generować impulsy, to po prostu może użyj Waitms. A jeżeli nie, zmieniaj wartość porównania w zależności od dodatkowej zmiennej. Np: $regfile = "m16def.dat" $crystal = 16000000 Dim A As Word 'Zmienna zwiększana i porównywana. Dim B As Byte 'Zmienna decydująca z jaką wartością będzie porównywana zmienna A. Config...
Zrób zmienną i na podstawie wartości tej zmiennej odczytuj okreslony pin (select case zmienna: case 1: e1=pina.0 :case 2:e1=portc.2 itp ) lub poprostu w procedurze odczytuj z góry ustalony pind... lub podepnij wszystkie czujniki pod jeden port w tedy bedzie latwiej: e1=portc.zm gdzie zm to Twoja zmienna
Portb = Mem_wiert ustawia na porcie odpowiednią kombinację stanów Mem_wiert = 1 - Końcówka 0 stan wysoki; reszta niski Mem_wiert = 2 - Końcówka 1 stan wysoki; reszta niski Mem_wiert = 4 - Końcówka 2 stan wysoki; reszta niski Mem_wiert = 8 - Końcówka 3 stan wysoki; reszta niski portb=0 wyłącza zasilanie silnika. Łatwiej jest sterować portem za pomocą...
Rozwiązanie Twojego problemu jest banalne. Na początek proponuję wykorzystać zmienną, która jest zwiększana przy każdym wciśnięciu przycisku i w zależności od wartości tej zmiennej (tu wystarczy od 0 do 3, przy wartości 4 zmienna jest znowu zerowana) ustawiasz jedynkę na odpowiednim porcie jednocześnie uruchamiając zliczanie. Kiedy licznik dojdzie do...
Witam, potrzebuje pomocy kogos kto pomoglby mi przy wstawce asemblerowej, caly program jest w BASCOM AVR a zalezy mi na szybkosci akurat przy funkcji zapisu i odczytu. A wiec tak ze wzgledu na uklad polaczen na plytce zamienilem linie portu: D7>D0 D6>D1 D5>D2 D4>D3 D3>D4 D2>D5 D1>D6 D0>D7 Zamieniony port to PB, zmienna z ktorej zapisuje/czytam to "Datlo"...
Witam, Nie wiem za bardzo co można sprawdzić w tym listingu, bo nie wiadomo co ma do końca robić, ale się nie kompiluje z kilku powodów: -niezadeklarowana zmienna "T1" -zmiennej typu String "H" nie można zwiększać ani zmniejszać jak zwykłej zmiennej, także nie można jej porównywać ze zmienną liczbową -polecenie "Lowerline" nie jest równoznaczne z jednoczesnym...
Przepraszam , przyznanie do winy nad Twoim postem. Dodano po 5 Program przycięty do pierwszego Reset P3.0 : Reset P3.1 : Reset P3.2 : Reset P3.3 już wykazuje błąd. Czyżby (podejrzenie laika) auto nie zdefiniował portów ? Poza tym steps =25 .. czy nie powinno zostać wyłączone apostrofem ?
Rzeczywiście, z zaremowaną funkcją bitwait zmienna W przybiera wartości. Nie mam pojęcia dlaczego. Musisz tu zrozumiec mechanizm pomiaru długości trwania impulsu w instrukcji "PULSEIN": patrz 'Bascom help' Pulsein W , Pinc , 0 , 1 W tym konktetnym przypadku pomiar czasu dokonywany jest pomiędzy zboczami, z których pierwsze jest rosnące a drugie opadające....
Jeśli odpowiednio sobie podłączysz magistralę do portu to sprawa jest prosta. Pisząc "odpowiednio" mam na myśli takie podłączenie do portu, żeby najmniej znaczącemu bitowi na porcie odpowiadał najmniej zanczący bit magistrali. Zakładam też, że magistrala jest 8-bitowa więc problem sprowadza się do przypisania do zadeklarowanej zmiennej wartości portu,...
greg a jeśli możesz to napisz jak zastosowac ta zmienna bo ze zmiennymi miałem problem nic mi nie wychodziło i dlatego tak to pisałem ?
W Herculesie Local Port ustaw też na 5000 Na dodatek piszesz w tytule posta Udpwritestr a w przykładzie używasz Udpwrite. To jak to jest z Tobą? :D Osobiście to robię to tak, że AVR wyciąga sobie port z jakiego do niego nadano i na niego odpowiada więc to u mnie jest zmienna.
Witam. Chciałbym użyć jednego portu w procesorze do obsługi:4 młodsze wyjścia portu pełniłyby funkcje dowolnych wejść/wyjść, a na 4 starszych pojawiałyby się stany logiczne od 1 do 12(kod binarny). Kod ten chciałbym dawać w ten sposób, aby pętla for ze zmienną licznikową wykonywała tę pętlę 12 razy. Nie wiem natomiast jak rozdzielić ten port, aby zmienna...
Nie znam VB.6 ale spróbuj tak: Form1.MSComm1.Output = Chr(Adres) & Chr(Dana) Adres - zmienna typu Byte określająca adres expandera Dana - zmienna typu Byte określająca stan portu expandera określonego przez zmienną Adres Pozdrawiam...
Witam. Na początek napiszę że to ma być mój pierwszy program napisany w tym języku i pierwszy kontakt z mikrokontrolerami. Nie mam pomysłu jak się zabrać za uruchomienie jakiegoś "zegara". Wydaje mi się że wtrącenie w pytaniu „jakiegoś zegara” wprowadza ludzi w błąd. Z dalszej części wynika że raczej potrzebujesz obsługi TIMERA wbudowanego...
tak, interface wyjściowy to UART TTL ale to w niczym nie przeszkadza i można go podłączyć bezpośrednio do portów uC. Aby Komputer skomunikował się z uC należy: po stronie kompa: -podłączyć moduł radiowy USB(po podłączeniu modułu powinien zamigotać diodkami) -skorzystać z terminala i otworzyć port COM z numerem dla jakiego zainstalował się moduł -prędkość...
, przetłumacz poniższy kod z BASCOM AVR na Arduino Uno: $regfile = "attiny2313.dat" $crystal = 8000000 Dim A As Byte a=0 Config Pind.6 = Output led Alias Portd.6 led= 0 Config Pind.0 = Input Portd.0 = 1 Sw Alias Pind.0 do if a >1 then a=0 if sw=0 then bitwait sw, set incr a End If if a=1 then toggle led waitms 100 else led=0 end if loop end Przekształcanie...
Do końca nie możesz, ale... Zmienna typu Byte to 1bajt. Jeśli zakładasz, że string jest dłuższy niż jeden bajt to możesz to sprawdzić przez Len.
A gdzie ustawienie portów jako wyjścia? config portc = output lub ustawienie odpowiedniego rejestru: ddrc=&b11111111 i to samo dla portu d: ddrd=&b11111111 potem już normalnie wykonujemy portd.0=1 lub 0 dodam jeszcze gwoli ścisłości że normalnie po resecie wyjścia są w stanie trzecim(nie podłączone do niczego) jezeli teraz ustawimy portc.0=1 to włączymy...
Witam Dokonałem tej zmiany i także wyrzuciłem zmienna S na Lcd i dalej program nie działa tak jak bym chciał. ................ Jest ok zmieniłem znak ''<" i działa . Do swojej podstawki programującej mam podłączone 2 przyciski do pin d.0 pierwszy do pind.1 drugi gdybym chciał zmieniać progi załączania pind.7 tymi przyciskami (czyli regulować temperaturę...
Nie pisałem nic na Rs485 ale mam kilka uwag do programu. Zacznij najpierw od poczytania w helpie bascoma, co robi dokładnie instrukcja Inkey() a dowiesz się że odbiera 1 bajt (jeden znak) z bufora. Sprawdzanie więc warunku B = "zaswiec" nie ma najmniejszego sensu. Nie wiem też po co przełączasz tyle razy układ w nadajnik <>odbiornik: ...... Reset...
Tylko jest jedno ale. To zajmuje 45 cykli, czyli tyle ile jakbym to robił po Ifach dla każdego portu. Dodano po 9 Sorki, na ifach byłyby 72 cykle (4 na każdy) A w ilu cyklach musisz sie zmieścic? Możesz sprawdzac instrukcją warunkową nie pojedynczy pin ale cały port wejściowy Np.: [code][syntax=basic4gl] Do If Pinb > 0 Then Flag = 1 Reset Portc.2 Temp...
sub akt_port if x=1 then 'x to twoja zmienna set portb.0 end if if x=2 then set portb.1 end if Coś takiego powinno dzialac
To Ci będzie sterować kolejno czterema diodami na pinach od B0 do B3. Zalecam wnikliwą analizę, zanim zalejesz mnie pytaniami :) Timery zawsze rób na odliczanie w dół do 0, w przeciwnym wypadku po wpisaniu nowej wartości w trakcie odliczania możesz mieć niezły kwas - pomyśl dlaczego :) Pozdrawiam [syntax=basic4gl]$regfile "m8def.dat" $crystal = 8000000...
tak odczytujesz dane z tabeli: Port = Lookup(x , nazwatabeli) port to zmienna do której je wpisujesz, x to indeks, oznacza numer kolejnej danej z tabeli, nazwatabeli jak sama nazwa mówi. a tak wyglądać ma tabela: nazwatabeli: data dane, dane, dane, 'itd każda tabela musi mieć swoją nazwę. A to jak te sekwencje się mają wyświetlać, zależy...
Bity zmiennej bajtowej możesz przypisywać tak jak piny portu Bajt.Bit Czyli u Ciebie Zmienna.0 = a Zmienna.1 = b itd.
wiem że można to zrobić za pomocą toggle ale czy w takiej postaci ten kod jest poprawny i będzie działał zgodnie z założeniem? .................. Nie. Ten code nie jest porawny(!) Począwszy od configuracji i ustalenia stanów spoczynkowych portów wejściowych masz w konsekwencji cały program wymagający korrecty, albo tworzenia go od nowa... Wejście nie...
Deklarujesz sobie dwie zmienne, 1 by liczyła naciśnięcie przycisku np(INCR Przycisk), 2 by liczyła czas na naciskanie przycisku i wyzerowała 1 zmienną w razie gdy przycisk będzie naciśnięty mniej niż 3 razy. Jeśli (przycisk dojdzie do 3), to zmienia stan portu na 1, tym samym włącza przekaźnik od drzwi, i zmienną która liczy 3 sekundy. Zmienna ta zmienia...
Zakładając że Twoja zmienna nazywa się X możesz napisać: PORTA = X & $0F PORTB = X & $F0 >> 4 Albo coś w ten dexeń - nie wiem dokładnie jak w bascomie zapisuje się AND.
Dziękuję za zainteresowanie :) Już znalazłem rozwiązanie... chodzi o to, że: czas działania jednego urządzenia mogę podać czasowo od-do ale nie raz tylko 2 razy na dzień, (włącz światełko od 13 do 15 i od 20 do 21, stąd powstają dwa niezależne przedziały czasowe) problem był w tym aby oba wykonywać na jednym pinie portu bo wspomniane światło jest podłaczone...
BascomAVR posiada funkcję obsługującą enkodery obrotowe zmienna = ENCODER( pin1, pin2, etykieta1, etykieta2, opcja). Nie korzysta z przerwań, można podłączyć pod dowolne wyprowadzenia w obrębie jednego portu, dokładny opis w help'ie.
Witaj. Delphi nie znam, wiem że jest to program bardzo podobny do VB. Ma wiećej możliwości oczywiście, myślę że jednak nie o to chodzi. DO RZECZY Chodzi Ci o to by np. po naciśnięciu przycisku program wysłał kod (jaki to teraz nie ma znaczenia) , a BasCom ma go odebrać. Poczym uC ma wykonać określoną czynność. Jeśli chodzi co o to ?? , sprawa jest prosta....
Jak chcesz wysyłać bezpośrednio wartości do portu(tzw tryb binarny) to w bascomie komenda printbin zmienna. Spowoduje to wpisanie wartości zmiennej do bufora a potem jej wysłanie. W standardowej komendzie print jeżeli na końcu linijki nie dasz znaczka";" to do wszystkiego doda enter(LF CR) dlatego ci drukuje dodatkowe rzeczy po prosty daja tak print...
Witam Chciałem zbudowac układ który liczył by 0-9 i wyświetlane to było na siedmiosegmentowym wyświetlaczu... .......... prosze o pomoc i o jakies proste wytłumaczenie moich błędów. myslalem jeszcze o robieniu tego za pomoca rozkazu INC i dodawania tylko nie wiem jak zawartośc rejestru wystawic na wyjscia z gory dziekuje za pomoc pozdrawiam Tu masz...
Spróbuj z tym programem. $regfile = "attiny2313.dat" $crystal = 1000000 Dim Zmienna as Bit 'zmienna bitowa 'konfiguracja portów, stan spoczynkowy = 1 przy przyciskach i przy d. LED. Do If pinb.0=0 then Zmienna = 1 'jeśli przycisk portu PINB.0 wciśnięty to -Zmienna = 1 If pinb.1=0 then Zmienna = 0 jeśli przycisk portu PINB.1 wciśnięty to -Zmienna = 0...
Czyli mam rozumieć że jak wyślę cos na port RS to te dane pojawią się w rejestrze UDR. I teraz if zmienna=0 then <nic> else <zapisz te dane do rejestru np. I i potem wyświetl> I jak wyświetlę na LCD tą zmienna to powinien wyświetlić te dane?
Na początek do rysowania schematów są odpowiednie programy a nie Paint , kody programu umieszcza się korzystając z polecenia Syntax a nie wkleja zrzut . Schemat : brak jakichkolwiek kondensatorów do filtracji zasilania , brak GND dla uC , brak oporników ograniczających prąd diod jeden wspólny to żadna oszczędność max prąd portu to 20mA , czerwone LED...
Niveasoft znalazłem wolny procek m162 i wgralem twój program tylko że wartości data zamienione na 170 , 85, 170 itd... By zmieniały się na przemiennie do testów. puszczone przez uln 2803 i zmienione ledy na 24V. Problemy m tym że wyświetla pierwszą cyfrę i stoi. Jak by zegar nie działał. I jeszcze jedno pytanie po co zmienna oldmin ? Edit Strona wykonawcza...
Romku, Tworzysz zmienną czterobajtową (Dim zmienna(4) as byte), czytasz cztery kolejne bajty odebrane przez port szeregowy z automatu, instrukcją INPUTBIN zmienna(1) , 4 Instrukcja ta odczyta cztery bajty z bufora portu szeregowego (w formie surowych bajtów), i zapisze je w zmiennej wielobajtowej "zmienna" począwszy od bajtu (pozycji) 1. A poszczególne...
Użyj najlepiej instrukcji shiftout . Przeznaczenie: Wsuwa ciąg bitów do zmiennej. Składnia: SHIFTIN pin_danych , pin_zegarowy , zmienna , opcje Dodano po 1 Sory to właściwa instrukcja, tamta przyjmuje dane SHIFTOUT pin_danych , pin_zegarowy , zmienna , opcje [, il_bitów , opóźnienie ] gdzie: pin_danychnazwa końcówki portu będącą linią wyjściową strumienia...
A co byś powiedział na operator AND. Port = p3 AND &H0F (bierzemy pod uwagę tylko 4 młodsze bity) Wtedy zmienna Port będzie zwracała stan bitów P3.0-P3.3 w formie liczby z zakresu 0-16. Nie trzeba będzie robić ceregieli z przeliczaniem stanów kolejnych bitów.
1WIRECOUNT Przeznaczenie: Zwraca liczbę urządzeń podłączonych do magistrali 1Wire. Składnia: [syntax=basic4gl]zmienna = 1WIRECOUNT( ) zmienna = 1WIRECOUNT( port , pin )[/syntax] A także: [syntax=basic4gl]1wverify Reg_no(1) Print Err 'Err=1 gdy nie ma takiego numeru[/syntax] Zwróć uwagę na tajemniczą zmienną Err, która jest zaszyta w programie.
no tak kolega ma racje w nastepnej petli zamaze zmienna Y kolejnym stanem na porcie Dataa, czyli rozumiem trzeba wbijac stan z portu dataa na kolejny bardziej znaczacy bit zmiennej Y , jak w zalaczonym wyzej przykladzie, dopiero zalapalem ten myk Rejestr.X=P1.1 :D
Mimo że port ma 7 wyprowadzeń to zawsze ustawiaj 8 bitów, bo to wciąż port 8-bitowy tylko że z obciętymi nóżkami. Regulację szybkości robi sie łatwo. Dodajesz jakąś zmienną np LICZ i teraz co każde wejście do przerwania timera to zwiększasz tą zmienną o 1. Teraz porównujesz ją z drugą zmienną np SZYBKOSC. Jeśli LICZ > SZYBKOSC to wykonujesz zawartość...
Witam sprawdź ten kod co prawda są inne numery portów i inny procek ale jak zmienisz powinno działać. Problem jest jeden w momencie jak naciskasz przycisk i zmieniasz końcówkę na WYJŚCIE to stan tego pinu Musi być (0) Niski , żeby nie zrobić zwarcia. '$sim $regfile = "attiny2313.dat" $crystal = 11059200 $baud = 9600 enable interrupts 'włącz...
Nie znam bascoma, ale postaram się przytoczyć to w pseudokodzie: MojaZmienna=&B00011001; //to ta zmienna której trzeba policzyć jedynki licz_jedynki=0; for (index=0;index<8;index++) { if(MojaZmienna&1) licz_jedynki++; MojaZmienna=MojaZmienna>>1; }; Nie mam naprawdę pojęcia jaki jest syntax w bascomie, inni forumowicze na pewno podadzą...
jeżeli zadeklarujesz : Pk_1 alias portA.0 Pk_2 alias portA.1 Pk_3 alias portA.2 ..... ..... ..... Pk_20 alias portC.3 to zmiany będziesz dokonywał tylko w deklaracjach , reszta programu zostanie bez zmian (jeżeli Pk_20 podłączysz np do portu A.0 to zmiana Pk_20 alias portA.0 i już) Ale chcąc sterować w pętli pamiętaj że : 1=2^0 2=2^1 4=2^2 itd... jeśli...
Witam, Chciałem się dowiedzieć czy na Porcie G w ATmeta128 można zrobić programowe SPI ? W dokumentacji napisane jest, że Port G jest portem 5 bitowym. Czy można więc wysłać przez SPI zmienną 8 bitową ? Kod w Bascom: [syntax=basic4gl]Config Spi = Soft , Dout = Ping.3 , Ss = None , Clock = Pinb.7 Spiinit Spiout < zmienna o wartość 255 > , 1[/syntax]...
Dałem Ci tylko przykład. Oczywiście jak napiszesz lcd zmienna zamiast lcd chr(zmienna) to wyślesz 48 i bedziesz miał 48.Żadna filozofia.Potem daj np:portd = ta zmienna i masz na porcie 00110000. Dodano po 10 A co da transmisji. Mój "system" działał przy baud 9600 i 19200. Robiłem to ze 2 lata temu. Wszystko na tranzystorach, prócz max-a oczywiscie.
moze tak : piszesz podprogramy wyswietlajace cyfry "1,2,3,4..." kazda cyfra/segment led oczywiscie ma przyporzadkowane odpowiednie piny portu najlepiej tego samego , potem po kolei wyswietlasz kazda z cyfr poprzez wysterowanie drugim portem tranzystora wspolnej elektrody(anody lub katody w zaleznosci od typu wyswietlacza). program pracuje w petli ktora...
Miałem na myśli to, że początkowo są ustawione, by zachowywały się tak jak stany logiczne na pinach portu, które sa obsadzone przyciskami. Tylko po to, by mi się nie zajączkowało. Problem w tym, że zmienna będzie mi się inkrementować co 65ms, czyli baaardzo szybko. PS. Wywaliłem AVR6.0 i zainstalowałem winavr. Teraz po prostu ściągnąć i zainstalować...
flaga to zmienna bitowa. pseudokod: przerwanie co 50ms: if P1 =1 if flaga_P1 =1 start silnik zacznij odliczanie 20sek else flaga_P1=1 else flaga_P1 = 0 kolejny sygnal...........
witam! chce zrobić zapis do pamićcie eeprom 24c512 "podobno są takie" Chodzi konkretnie o to aby zapisywać ciąg znaków takich jak: R260120071330100 na końcu tego stringu będzie znak powortu karetki enter Z260120071345100 na koncu tego stringu będzie znak powortu karetki enter ale ten enter nie jest tak ważny jak to żeby mi te dane program napisamy w...
Programu Ci nie napiszę ale opiszę jak go napisać... 8-) 1. stwórz sobie zmienną BYTE przypisz jej wartość &B00000001 2. w pętli badaj przycisk i jeśli będzie wciśnięty to wykonaj instrukcję SHIFT zmienna,Left,1 3. przypisz zmienną do portu, na którym ma wędrować jedynka 4. czekaj aż przycisk będzie puszczony 5. pamiętaj, że jak instrukcja z punktu...
Miałem kiedyś jakąś potrzebę na taki 8-o przyciskowy program dla attiny2313. Zamieszczam go w całości z komentarzami, może Ci się przyda: [syntax=basic4gl]$regfile "attiny2313.dat" $crystal = 1000000 '-- Config Portb = Input Portb = &B11111111 Config Portd = Output Portd = &B00000000 Config Porta.0 = Output Porta.0 = 0 Dim Nr As Byte 'licznik...
Kupione, bardzo ciekawa, dużo przykładów. Znam już trochę timer (przynajmniej podstawy), ale teraz pytanie. Jak zrobić żeby zmienna trwała krócej niż impuls, który ustala jej wartość? (pewnie piszę herezje) [syntax=vbnet] If PULSE=1 Then T=1 Waitms 1 T=0 End if [/syntax] Proble jest w tym, że moje PULSE trwa ok 300-500ms, a moje T musi być wyzwalane...
http://obrazki.elektroda.pl/5724768100_1... Witam, Aktualnie buduję/remontuje niewielką tokarkę, do zastosowań domowych. Jej mechanika jest dość prymitywna, co za tym idzie nie posiada żadnych podziałek, ani automatycznych posuwów. Wobec tego chciał bym zaopatrzyć ją w liniał, który będzie pokazywał pozycję imaka na wyświetlaczu LCD....
Tak, tylko do tego chyba jeszcze jakiś pin zatrzasku by się przydał, bo jeśli w eepromie będą kolejno takie same bajty, to nie odróżnisz który jest który. Zastosujs jeszcze inny pin, który będzie zmieniał stan, raz albo dwa, co da informacje zewnętrznemu urządzeniu, albo czemukolwiek że to inny bajt. A w bascomie do takiego czegoś możesz zastosować...
No tak :/ jeszcze jest Integer :D już mam, dla potomności: [syntax=basic4gl] Do 'Odbierz znak po znaku Kod = Inkey() Dane = Dane + Chr(kod) Port = Left(dane , 3) Stan = Right(dane , 4) Wartosc = Val(stan) Sprawdz = Val(stan) 'dodana zmienna Integer If Port = "red" Then Rgb = 1 If Port = "gre" Then Rgb = 2 If Port = "blu" Then Rgb = 3 'Zapisz w Dane...
To załóżmy taka sytuacje.. Obsluga przerwania Timera1 zlicza nam czas. Po okreslonym czasie,nastepuje zalaczenie portu. Jezeli licznik do zliczania czasu w WinAVR bedzie zadeklarowany jako zmienna lokalna i nastapi reset to czy licznik bedzie dalej prawidlowo zliczal?fakt ze wystapi zwłoka wynikajaca z kasacji zawartosci timera1. w bascomie juz taka...
Flaga to nic innego jak zmienna typu bitowego. Koledze chodzi o fakt ze przyciśniecie przycisku przy fladze ustawionej na 1 wywołuje jakąś akcję w twoim przypadku zmiana zapalonej diody po czym zerowana jest ta flaga. Flaga uniemożliwi ponowną zmianę diody przy ciągle przyciśniętym przycisku. Zwolnienie przycisku powoduje ustawienie flagi pozwalając...
Dużo błędów. Błędna konfiguracja portu C - chyba zapomniałeś o &B. :) W kilku innych miejscach również. Warunek Elseif Volt < 0 And Acsr.5 = 0 Then nigdy nie zostanie spełniony. Dlaczego ? Ano zobacz sobie jakie dane przechowuje zmienna typu Word.
Dat Alias Portd.13 Ena Alias Portd.12 Clk Alias Portd.11 Nie wiedziałem, że Mega8 ma trzynaście końcówek na porcie D :) Wpis = &B1100100111000101 ' prekonfig Wpis = 8750 ' częstotliwość początkowa Po co najpierw zmienna Wpis zawiera liczbę 51653 by zaraz wartość zamienić na 8750 ? Ddrc = &B1111_1111 Portc = &B1111_1111 Jak ty chcesz sterować przyciskami...
Język nie jest ważny. Polega to na odpowiednim ustawieniu sygnałów na wejściach LCD czyli sterowania rejestru Port. Jak wrócę z pracy to wstawię tu kod napisany w C dla zwykłego LCD ( z lekkim tłumaczeniem). Może uda się to przerobić na Bascom. Wtedy uzyska się dostęp do czasów. Do tego czasu spróbuj wyssać procedurę inicjacji z noty katalogowej. P.S....
Nie wiem czy dobrze ustawiłem dim'y Wyswietlanie,Trybprzycisk, Trybpomocnicza1 mają być Byte ? W takim układzie przyciski będzie zczytywało co 4ms, ale co z odświerzaniem LCD co 100ms i 1sek ? Aha i gdzie mam określić port przycisku PORTA.7. Mogą być typu byte ale po co? z tego co widzę to zmienna Trybprzycisk przyjmuje tylko dwa stany prawda lub fałsz,...
Może być i zmienna tablicowa w pamięci ram jeżeli masz 10 wolnych bajtów. A może być i coś takiego: na końcu programu deklaruję taką tablice (kolejne liczby są wartościami wpisywanymi do portu, które zapalają odpowiednie segmenty): Tabela: Data 192 , 249 , 164 , 176 , 153 , 146 , 130 , 248 , 128 , 144 np. wyświetlacz podłączony do portu B, cyfra...
Do autora - przyjrzyj się [syntax=vbnet]Config Portd.5 = Output : Dc_wlacz Alias Portd.5 Config Portd.1 = Input : S12_wolniej Alias Portd.1 Config Portd.2 = Input : S11_szybc Alias Portd.2 Config Pina.0 = Output : Kier_lewo Alias Pina.0 Config Pina.1 = Output : Kier_prawo Alias Pina.1 Config Pina.4 = Input : S10_start Alias Pina.4 Config Pina.5 = Input...
Przy takim programie, na wyświetlaczu pojawiają się albo same krzaki, albo znaki zapytania, a jeżeli uruchomi się, to jest samo 0... Nie zwiększa się zmienna. [syntax=basic4gl]$regfile = "m8515.dat" $crystal = 8000000 Config Portb.1 = Output 'RW LCD Portb.1 = 0 Config Timer0 = Timer , Prescale = 1024 Tccr0 = 4 Enable Interrupts Enable Timer0 on timero...
Wg opisanej zasady powinien działać poniższy program ‘ Program swiatła samochodowe – opis działania ' ‘ Po włączeniu zasilania, gaszone są swiatła postojowe i mijania ' (gaszenie w sensie wyłączenia przekaźników) ‘ Program czeka na pojawienie się sygnału zapłonu ze stacyjki ‘ Następnie program czeka na znikniecie...
zastosuj funkcję rnd Przeznaczenie: Zwraca pseudolosową liczbę z określonego zakresu. zmienna = RND( zakres ) gdzie zmiennadowolna zmienna numeryczna, w której znajdzie się wygenerowana liczba pseudolosowa, zakresliczba określająca górną granicę generowanych liczb. Użyj później tej liczby do wysterowania portów ledek i masz problem z głowy. Poczytaj...
Witam prosze o pomoc w takim oto temacie : Staram sie odczytac/wyslac dane przez Usart przy pomocy AVR studio (jako ze jestem jeszcze zielony w tym temacie nie moge poradzic sobie z tym problemem sam) Zapalanie i gaszenie Ledow mam juz za soba i teraz chcialem nauczyc sie rozmawiac z komputerem przez USART wydukalem taki oto kod - ale niestety symulacja...
Witam Program jak wiadomo działa w jakiejś pętli. Użyj więc w tej pętli polecenia WAITMS 100 czyli oczekiwanie 100 milisekund. I teraz tak jeśli naciśniesz klawisz (zakładamy, że na porcie panuje wtedy 0 logiczne) i trzymasz go to jakaś zmienna jest inkrementowana co 100 milisekund. Jeśli zmienna ta doliczy do 60 to minie około 6 sekund i wtedy każesz...
Napisałem swój pierwszy program z przerwaniami i w zasadzie działa tak jak oczekuje. Jego zamysł jest podobny do pierwszego programu (początek tematu) z tym że nie steruje szybkością migania diody. Problem polega na tym, że (co nie powinno być dziwne) zmienić diodę mogę tylko wtedy gdy się ona pali. Gdy wcisnę przycisk gdy jest zgaszona program się...
' Trzy przyciski kolejno .... (TSA ;) ' wersja bez przerwań i Timera czas_a as integer ' zmienna czasowa A czas_b as integer czas_c as integer we_a alias pinx.1 ' wejście A we_b alias pinx.2 we_c alias pinx.3 wy_a alias Py.1 ' wyjście A wy_b alias Py.2 wy_c alias Py.3 stan_a as bit ' stan układu monostabilnego A: 0 - czeka, 1- liczy stan_b...
Parę zmian i z 117% zrobiło się 91% :), a można jeszcze niżej zejść. Mam nadzieje że byka nie zrobiłem :): [syntax=basic4gl]$regfile = "attiny2313.dat" $crystal = 8000000 ' dodano wielkości stosów i ramki ----------------- ' jeżeli będzie za mało ramu wartości można zmienić $hwstack = 40 $swstack = 16 $framesize = 32 '---------------------------------------...
Witaj Myślę że tymi 200Hz powinieneś ustawiać jakąś zmienną, w szczególnym przypadku cały bajt na 0 lub 255, niech ta zmienna nazywa się A, teraz na zmienną B wysyłasz sekwencję impulsów sterujących i po każdym przerwaniu robisz A or B i wysyłasz na port, jeśli inaczej sterujesz to może to być A and B ale z tym już sobie poradzisz, przy takiej częstotliwości...
Program ma wygladac nastepujaco. Sa dwa czujniki. W momecie gdy procek dostanie sygnal z pierwszego czujnika, uruchamia wyjscie impulsowe czyli wlacza silnik. Procek czeka i impulsuje do momentu impulsu z 2 czujnika. Po tym caly cykl sie powtarza. Czyli sadzisz zeby tooglowac portem, a przerwy uzaleznic zmienna od ADC wstawiona w waita?? Nie mozna jakos...
zmienna bascom bascom zmienna bascom zakres zmienna
zmiana oprogramowania philips oznaczenie zmywarka siemens sprawność energetyczna akumulatora
toshiba 32l4353d toshiba 32l4353d
Jak uruchomić piec gazowy bez sterownika? Wentylator w suszarce do grzybów nie działa - diagnostyka