Witam, mój problem polega na tym iż za pomocą poniższego programu próbuję wysłać zapytanie GET do pewnego serwera. niestety lecz z bascoma mi to nie wychodzi, a z przeglądarki jak najbardziej tak. Wiem, że część waitów jest niepotrzebna, później je usunę. $regfile = "m88pdef.dat" $crystal = 1000000 $hwstack = 40 $swstack = 16 $framesize =...
Powinno być tak: [syntax=basic4gl] Print "AT+CMGS=+48123456789" Waitms 100 'Oczekiwanie na znak ">" Print "Test" ; Chr(26); [/syntax]
Czy taki zapis jest ok? Print "AT+COPS=2" ; Chr(13) Waitms 10 Print "AT+CLTS=1"; Chr(13) Waitms 10 Print "AT+COPS=0" ; Chr(13) Wait 30
pytane: jestem w fazie uruchamiania swojego modemu sim300d. Zasilanie 5V do VCHD, aku 3,7V od nokii do VBAT i równolegle 100uF/16V (elektrolit). ATmega8L podłączona róznież do VBAT tak jak aku. Uruchamiam układ, zwieram na chwilę PWRKEY do masy. Świeci się dioda STATUS oraz szybko miga NET STATUS. I teraz próbuję zalogowac się do sieci: wysyłam sekwencję:...
Problem rozwiązany Trzeba spokojnie acz nie nerwowo wysyłać do modemu komendę ATE0 i czekać aż modem ustali szybkość transmisji. Jak wróci "OK" można działać dalej. Dziękuje wszystkim za pomoc i światłe rady. A, czy ja tego wcześniej nie pisałem? podałem sekwencje startową !!! Modem trzeba "przygotować do pracy" wiec wpisz sekwencję Kod: Print "ATH"...
Witam Chciałem wysyłać SMS'y, ale żeby ilość wysyłanych danych była dynamiczna - tzn. w miarę potrzeb. Napisałem coś takiego ( oczywiście zmienna Numer jest typu String i zawiera numer telefonu ): [syntax=vbnet] '************ wysylanie przez GSM Sub Send_gsm(byval Gsm_text1 As String * 15 , Byval Gsm_text2 As String * 15 , Byval Gsm_text3 As String...
Dokumentacje dla SIM800L zarówno dla komend, jak i samego modułu już mam. Tzn. już doszedłem, że maks znaków to 4096 i można wstawiać zmienne +SAPBR: 1,1,"10.129.99.185" i nic się nie wysyła. Dopiero za drugim razem. Kod wywołania połączenia jest taki: OK OK OK OK +SAPBR: CONTYPE: GPRS APN: internet PHONENUM: USER: PWD: RATE: 2 OK OK OK DOWNLOAD OK...
Pewnie, jak to w życiu, coś trzeba będzie poprawić, ale możesz spróbować tak. Niektóre zmienne tam nie zostały użyte bo koncepcja się zmieniła podczas pisania ;) Przesunąłem przycisk i dodałem tez pin obsługujący wymuszenie trybu AT [syntax=vbnet]$regfile = "attiny45.dat" $crystal = 8000000 $hwstack = 32 $swstack = 32 $framesize = 64 Config Portb.2...
No to przecież program powyżej obsługuje dokładną regulację. W pętli głównej przed LOOP dopisz np WAITMS 100. Wczoraj o tym zapomniałem. Więc procesor zbyt szybko zwiększa/zmniejsza szybkość i wychodzi ci to tak, jakby silnik miał tylko 2 prędkości. Użycie waitms jest prymitywne ale nie wiem co twój program ma jeszcze robić więc idę na łatwiznę i nie...
Po prześledzeniu przebiegów na oscylatorze okazuje się, że odchyły od zadanych przebiegów są większe niż przypuszczaliśmy. A to oznacza, że jednak wsadzamy kwarc.. niech już będzie 16MHz. Oprócz zmiany w fusebicie CKSEL = 1111 trzeba zmienić prescaler.... chyba. Czy ktoś może podpowiedzieć, podać link jaki prescaler winien być ? Nie wykorzystujemy tu...
Tak, zasilanie będzie 5V, także spokojnie powinno wszystko działać. Dodano po 5 Odnoście posta wyrzuconego Kolegi (at)wawxx - Z wyłączeniem /8 sobie poradzę, ale nawet gdyby miał pracować z częstotliwością 1MHz, to co najwyżej zmienię waitms w kodzie. To ma tylko sterować 7 LED i czasem jedną pomigać. 261 są dużo tańsze od 2313, a tak samo funkcjonalne...
Najprościej jak się da: Do Set portb.0 Waitms 750 Reset portb.0 Wait 2 Set portb.0 Waitms 750 Reset portb.0 Wait 2 Set portb.0 Waitms 750 Reset portb.0 Wait 2 Set portb.0 Waitms 750 Reset portb.0 Wait 2 Set portb.0 Waitms 750 Reset portb.0 Wait 1800 Loop Tylko, że to dokładne co do sekundy nie jest... Poślizg mniej więcej ~1 minuta +/-
A jak na timerze w bascomie co ś takiego przerobić?? na attiny 2313 set portb.4 waitms 2.2 set portb.5 waitms 3.3 reset portb.4 waitms 2.2 reset portb.5 waitms 3.3
Proszę autora tematu o przejrzenie tego kodu, dodałem aliasy, zrobiłem zliczanie czasu bezczynności i obsługę alarmów. Nie wnikałem w sterowanie buzzerem i licznikiem dystansu, to już pozostawiam twórcy. [syntax=vbnet]$regfile = "attiny2313.dat" $crystal = 8000000 Config Lcdpin = Pin , Db4 = Portb.5 , Db5 = Portb.4 , Db6 = Portb.3 , Db7 = Portb.2 ,...
Czy jest funkcja szukania samych cyfr z buforu rs232? To są odpowiedzi z modułu SIM800. Bazuję na czymś takim: If Pinc.3 = 0 Then Waitms 750 Print "AT+CCLK?" ; Chr(13) ; 'zapytanie o datę i czas Waitms 50 Date_str = Mid(odb_txt , 20 , 8) Time_str = Mid(odb_txt , 29 , 8) End If Ale coś się dzieje i nawet wyświetla litery z odpowiedzi modułu. Da się jakoś...
OK mam zasilacz 2A moduł się loguje ale na tym programie nie wysyła sms [syntax=vbnet] $regfile = "m644pdef.dat" ' specify the used micro $crystal = 16000000 $hwstack = 32 $swstack = 32 $framesize = 200 $baud = 19200 Declare Sub Wyslij Dim I As Byte Dim J As Byte Dim K1 As Byte Dim K2 As Byte Dim K As Byte Dim Flaga As Byte Dim Pomoc As String * 2 Dim...
Witam Mam mały problem z BTM-222. Jeśli podłącze go do PC poprzez RS232( stosuje ST3232) i uruchomię HyperTerminal wysyłam do BT komendy AT,ATI1 oraz pozostałe np. ATB? to modem odpowiada prawidłowo. Jeśli podłącze go do Atmegi32L i wysyłam komendy AT i ATI1 to modem działa i odpowiada "OK". Natomiast jeśli wydaje inne komendy np. ATB? to w odpowiedzi...
Z tego co wiem transmisja radiowa w przez moduły RFM01 i RFM02 odbywa się poprzez magistrale SPI. Takie może retoryczne pytanie, jeśli w Attiny2313 pod piny z SPI mam podpięty LCD, to będę miał zakłócenia? Zmienić lokalizacje LCD? Próbuje radiowo połączyć attiny2313 MASTER i atmega16 SLAVE. Na początku chcę połączyć przewodami żeby sprawdzić jak działa...
Zapomniałem o ustawieniach modemu. Mam do tego taki podprogram: Inicjuj: Cls : Lcd "Inicjuje" Waitms 100 Print "ATX0" ; Chr(13) 'Odpowiadaj Waitms 100 Print "ATZ" ; Chr(13) 'Ustaw domyślnie Waitms 100 Print "ATE0" ; Chr(13) 'WYLACZ ECHO Waitms 100 Print "AT+CLIP=1" ; Chr(13)...
Witam, Czy ktoś ma doświadczenia w postawieniu serwera na EPS 8266 w Bascomie , napisałem krótki program ale coś nie działa, moduł sprawdziłem za pomocą programu z strony [syntax=html] https://esp8266.ru/[/syntax] i działa [syntax=vbnet] $regfile = "m644pdef.dat" $crystal = 16000000 $baud = 19200 $hwstack = 32 ' rozmiar stosu sprzętowego $swstack =...
Witam, Mam taki problem otóż posiadam zestaw zl3avr który ma wyjcie na kabel com, lecz gdy coś wysyłam to w hyper terminal tego nie odbiera ;/ Taki prosty program mam : $regfile = "m32def.dat" $crystal = 16000000 $baud = 9600 Do Print "AT" Waitms 100 Loop End w HT mam ustawione 9600 8 n 1 , port com działa bo sprawdzałem to w 2 kompach,...
$regfile = "attiny2313.dat" $crystal = 4000000 Config Portb = Input Portb.0 = 1 Config Portd = Output Portd = &B11111111 Dim Temp As Byte Temp = 1 Do Temp = Temp * 2 If Temp > 80 Then Temp = 1 Portd = Temp Toggle Portd If Pinb.0 = 0 Then Bitwait Pinb.0 , Set End If Waitms 500 Loop End Dodałem znaczniki
Jest to kawałek kodu w bascomie dla atmega8, może coś pomoże: **Podprogram konfiguracji** Sub Konfig Cls Pwm1a = 200 'to od podświetlenia lcd Lcd "USTAWIENIA" Locate 2 , 1 Lcd " PROGRAMU" Wait 2 Cls Lcd "Przycisk START" Do Getrc5(address , Command) Command = Command And &B01111111 If Adress <> 255 Then...
No dobra. Wywal wszystko na linii Tx telefonu do Rx procesora. Ma być połączenie bezpośrednie. Na drugim kierunku zostaw tak jak masz. Poniżej kod do testów. Powinien działać. [syntax=basic4gl]$regfile = "m32def.dat" $crystal = 16000000 $baud = 19200 Config Lcd = 16 * 2 Config Serialin = Buffered , Size = 100 Enable Interrupts 'Declare Sub Oproznij_bufor...
Jak użyć timera (tzn. jak wyciągnąć z niego np zmienną dodawaną, lub resetowaną co określony czas?) Boję się jeszcze TIMERów :) Nie ma się czego bać. Oto prosty programik, który na pewno pomoże. 796182 Jednak dziwię się dlaczego nie używasz sprzętowego PWM. Attiny 2313 posiada ich cztery. Na każdym z timerów po dwa. [syntax=vbnet]Dim R As Integer Dim...
Witam, próbuje zmontować alarm z powiadomieniem za pomocą SMSa. Części składowe to: - Atmega8a - moduł GSM SIM800L - czujki PIR HC-SR501 - czujki MW HFS-DC06 - moduł 2 przekaźników - przycisk reset - wyłączenie syreny (tymczasowo bo będę chciał to robić za pomocą SMS) Działanie polega na wykryciu ruchu przez dwie czujki (PIR i MW, które są w jednej...
Ok dziekuje , a co za bledy kolega sie dopatrzyl ? prosze o wskazanie bo jestem poczatkujacym w bascom i z tymi waitms nie wiedzialem jak inaczej zrobic
Po dłuższej przerwie znowu wróciłem do tematu. Więc modem nie obsługuje trybu tekstowego. Poszukałem trochę na necie, przeczytałem uważnie jeszcze raz oryginalny temat założony przez Xury. Zmodyfikowałem program posiłkując się plikiem sms.bas wymienionym we wspomnianym temacie. [syntax=basic4gl] $data Config Serialin = Buffered , Size = 80 , Bytematch...
aktualnie tak zrobiłem - zawsze na 1 pozycji jest krzak zatem MID i odcięcie pierwszego i jest w miarę dobrze - najgorsze jest tylko to, że wysyłając: (poniżej kod odbioru już trochę zmieniony (kanał 2 uarta m128 idzie w celach monitorowania na RX PCta)) Print #2 , "AT" Print "AT" Waitms 10 If Ischarwaiting() = 1 Then Znak...
Może coś źle wpisałeś... Dim a as bit powiino być na początku programu poza blokiem do : loop : end Cały kod powinien wygladać tak: ' Demo-Z wykorzystaniem wyś led orz pd6 Config Portb = 255 'wszystkie końcówki jako wyjścia Portb = &B01111111 'umożliwia zaświecenie kropek Config Portd = &B1111100 'dwa najmłodsze bity - wejścia Portd = &B1111111 'stan...
Witam Próbuję wysyłać dane do bazy Thingspeak. Zmienne: [syntax=vbnet] '********************* Deklaracje zmiennych dla ESP8266 Dim Ssid As String * 10 Dim Pass As String * 15 Dim Cmd As String * 65 Dim Thing_len As Byte Dim Thing_string As String * 140 Dim Apikey As String * 18 Dim Esp_ready As Byte Dim Wyslano_esp As Bit Dim Esp_progess As Byte Dim...
Udało mi się uzyskać połączenie z telefonem jak na razie tylko dzwoni i rozłącza się po 10 sekundach ale to i tak sukces. kod: $regfile = "m16def.dat" $crystal = 16000000 $baud = 9600 $hwstack = 64 $swstack = 32 $framesize = 100 Wait 20 Print "AT" ; Chr(13) ; Waitms 100 Print "AT" ; Chr(13) ; Waitms 100...
_-kod-_ w bascomie avr $sim $regfile = "ATtiny13.dat" $crystal = 4000000 Dim Licz As Iram Byte Config Portb.4 = Input Config Portb.3 = Input Config Portb.1 = Output Set Portb.4 Set Portb.3 Do If Pinb.4 = 0 Then Waitms 25 If Pinb.4 = 0 Then Incr Licz End If End If If Licz = 30 Then Do Set Portb.1 nop Waitms 20 Loop Until Pinb.3 = 0 Licz = 0...
A działa ci samo PWM bez przycisków? [syntax=basic4gl] do For I = 0 To 255 Pwm0b = I Waitms 2 Next I loop[/syntax]
Tak ale on sie nie sypie z powodu drgań styków tylko sprawdzania przez procesor dwóch IFów:). Czyli : zaznaczyłem (***) Wtedy gdy kręci pętle . Na pewno da sie to jakoś (zapriorytetowac) aby najpierw sprawdzał pierwszego IFa. Tylko nie wiem jak. Bo to ma wygladać tak że jak kliknę raz to dioda miga 3 razy, a jeżeli będe nadal trzymał przycisk to ma...
Nie wiem czy o to Ci dokładnie chodziło ale przeróbka mojego programu na wielozadaniowy przycisk (w tym wypadku 5 funkcji ale można i dużo więcej) wyglądała by tak: L_d=0 Do '-------- If Sel_p = 0 Then 'klawisz Waitms 25 If L_d < 255 Then Incr L_d If L_d = 200 Then 'czekaj około 5s (200x25ms=5000ms) Gosub przycisk_5s End If Else If L_d >...
To możesz zrobić tak: [syntax=basic4gl] Odczytaj_sprzetowy_uart: Dane = "" Do 'Odbierz znak po znaku Kod = Inkey() Dane = Dane + Chr(kod) 'Zapisz w Dane If Dane = "Obroty1" Then Obroty = 1 If Dane = "Obroty2" Then Obroty = 2 If Dane = "Obroty3" Then Obroty = 3 Bufor = Ischarwaiting() 'Zakoncz jeśli brak znaku Loop Until Bufor = 0 Return [/syntax] i...
OK, udało mi się dojść do ładu z wysłaniem i odbieraniem sms-ów. I już myślałem że będzie wszystko ok, pojawił się problem z ładowaniem. Podłączyłem się pod wejście od ładowarki przez przekaźnik i chciałem uruchomić ładowanie przy słaby stanie baterii. Po włączeniu telefonu i przeprowadzeniu inicjalizacji: [syntax=basic4gl] Print "ATX0" ; Chr(13) 'Odpowiadaj...
Proponuje tak: Dim I As Byte 'przykładowy Do If PINB.1 = 0 Then if I <255 then Incr I 'albo otwarte, albo zamknięte Else if I >80 then Decr I endif Pwm1a = I Waitms 100 Loop
Po pierwsze i bardzo ważne. Kiedy używasz w uC portu UART to port TX jest skonfigurowany jako wyjście i jest tam stan wysoki oprócz momentów kiedy nadaje. TX jest na PORTD.1 Kiedy więc wciskasz przycisk podłączony do PIND.1 to robisz procesorowi kuku w postaci zwarcia. Lepiej przenieś przyciski na inne piny. Nad konstrukcją tej płyty spuśćmy w tym temacie...
Wystarczy kilka linii: $crystal = 4000000 $regfile = "attiny2313.dat" $baud = 9600 Do Print "test" Waitms 500 Loop End Pozdrawiam...
Chwilowo straciłem ten kod postaram się go znaleźć ale opierałem się na projektach z internetu. No bez jaj. Na 99% nic nie masz tylko czekasz na gotowca. Ale dobra, zlituję się na święta :D Pomijając całą beznadziejność kodu do multipleksowania wyświetlacza, takie coś powinno działać: $regfile = "ATTiny2313.dat" $crystal = 8000000 Dim Jednosci...
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 '---------------------------------------...
(...) osobnym PinX i oczekuj na stan niski ADCx2 aż do spełnienia tego warunku. Jeśli na ADCx2 napięcia równe 0 mrugnij diodą Led1 jeden raz przez 300ms, wyłącz Przekaźnik1 na PinX Po czym wróć do góry procedury, do oczekiwania na napięcie na ADCx1 To właściwie tyle. Dziękuję za uwagę i wszelaką pomoc. Witam serdecznie na forum! Chętnie pomogę Ci przygotować...
Po prostu podwójne badanie wciśniętego key... Chyba najbardziej znane rozwiązanie (nie koniecznie najlepsze!): [syntax=basic4gl]If Portb.0 = 0 Then Waitms 25 If Portb.0 = 0 Then 'instrukcje które mają się wykonać po wciśnięciu klawisza ' End If End If[/syntax] Co istotne - wciśnięcie klawisza w takim rozwiązaniu spowolni główną pętlę o 25ms (podobnie...
Witam Ja uruchamiając połączenie GPRS co prawda w SIM800L ( i w Bascom ) robię tak [syntax=vbnet] Print "AT+SAPBR=3,1," ; Chr(34) ; "CONTYPE" ; Chr(34) ; "," ; Chr(34) ; "GPRS" ; Chr(34) ' typ polaczenia GPRS Waitms 50 'OK - odpowiedz Print "AT+SAPBR=3,1," ; Chr(34) ; "APN" ; Chr(34) ; "," ; Chr(34) ; "internet" ; Chr(34) ' APN, dla Play - internet...
Nie mogę się doszukać w helpie jak skonfigurować i używać PWM dla Tiny2313 w Bascom AVR a wyszukiwarka na forum nie działa, ktoś może mi pomóc? Ponieważ nie za bardzo ufam Bascomowi przy konfiguracji automatycznej( Config Timerx) , to wolę poustawiać rejestry ręcznie , korzystając z dokumentacji :D $regfile = "attiny2313.dat" $crystal = 1000000...
Funkcja WAITMS nie jest odporna na przerwania. Jeśli masz jakieś to każde wystąpienie przerwania w trakcie WAITMS rozjedzie go. Niezależnie od stabilności tej funkcji, a nie ma powodu, żeby nie była powtarzalna jeśli nie jest przerywane wykonanie przerwaniami, to i tak lepsza praktyką będzie wykorzystanie timera.
Problem powoduje używanie waitms. Podczas wykonywania waitms procesor pracuje tak jakby w pętli do..loop i nie reaguje na nic. W zasadzie nie powinna być używana. Rodzi więcej problemow, a wcale nic nie ułatwia. Zastosuj timer do sterowania diodą zamiast waitms.
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down Dim Pokaz As Single dim B as single Cls : Lcd " Swiatlo v0.1" : Lowerline : Lcd " by Grzegorz Z." Waitms 500 Pwm1a = 0 b=100/255 Do If Pind.5 = 0 Then if pwm1a=255 then pwm1a=255 else Pwm1a = Pwm1a +1 end if If Pind.4 = 0 Then if pwm1a=0 then pwm1a=0...
Tak zrobię. Jestem bardzo ciekawy jednego. W programie napisanym w bascomie, na początku, przeprowadzam inicjację modułu. Print "ATH" Waitms 100 Print "ATE0" Waitms 100 Print "AT+COLP=1" Waitms 100 Print "ATE0" Waitms 100 Print "AT+CLIP=1" Waitms 100 Print "AT+CMGF=1" Waitms 100 Jeżeli nie...
Natomiast gdy zwieram ten pind.3 do masy to już wszystko widać dobrze. Bo dochodzi opóźnienie Waitms 200. Co powinienem zrobić, aby wyświetlało to się dobrze? Wyrzucić Cls przed pętlę i poczytać o Locate.
Rozświetlanie natychmiastowe: PWM1A = 0 jeśli aktywny stan zero lub PWM1A=255 jeśli konfiguracja odwrotna (aktywny stan wysoki). Gaszenie płynne: Pętla, Waitms/Wait, PWM1A = PWM1A - 1, Koniec pętli. Konfiguracja: http://zbeegin.republika.pl/bashelp/s_co... Już większej filozofi nie można w tym temacie napisać...
Teoretycznie , ten kod powinien włączać/zatrzymywać odtwarzanie na czas 5s , czyli 5s gra , 5s pauza i tak w kółko ;) $regfile = "attiny2313.dat" $crystal = 8000000 Const Header_lenght3mode2 = &H020355FF Const B_play_pause = &H0100 $baud = 19200 Do Printbin Header_lenght3mode2 Printbin B_play_pause Printbin &HFA Waitms 20 Printbin Header_lenght3mode2...
Tam też był błąd. I nadal jest tylko 7 jedynek. Ale to akurat na ma znaczenia. cytat z helpa Instrukcja RESET Przeznaczenie: Ustawia określony bit w stan 0. Ustawia bit a nie bajt i tu jest problem. Wpisz tak: [syntax=basic4gl] Portb = 0 waitms 500 Portb = 255 waitms 500 [/syntax]
Weź sobie załaduj do jakiegoś podprogramu fragment w którym sprawdzane są przyciski, jednocześnie w tym podprogramie odliczaj opóźnienie. (np zrób pętle która będzie miała waitms 1 - ilość wykonań pętli ilość opóźnienia ale równocześnie sprawdzany port przycisku) Zamiast rozkaz waitms wywołuj ten podprogram. To tak najprościej i bez przerwań.
Poczytaj tematy i uzyj szukaj. Attiny2313 nie posiada adc wiec potencjometrem nie dasz rady tego sterowac. Domyslam sie ze robisz do w bascomie. Tu masz kawalek kodu jak konfigurowac timery zebys mial 4 pwm. '******* procek ******* $regfile = "attiny2313.dat" $crystal = 8000000 $hwstack = 30 $swstack = 30 $framesize = 30 '****** dioda R/G...
Dodaj Waitms przed Loop: [...] Waitms 10 Loop
Układ będzie generował zawsze na OC1A. $regfile = "attiny2313.dat" $crystal = 8000000 Config Pinb.3 = output Dim Togbit As Byte , Command As Byte , Address As Byte Command = 12 'kod włącz/wyłącz Togbit = 0 'wyzeruj toggle bit Address = 0 Do Rc5send Togbit , Address , Command Waitms 250 Loop End Spróbuj tego ^ Dodano po 3 Możesz spróbować zamienić...
Mniej więcej tak: $regfile "Attiny2313.dat" $crystal = 4000000 Config Pind.3 = Output Config Pind.0 = Input Config Pind.1 = Input Config Pinb.3 = Output Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Disconnect , Prescale = 8 Dim I As Byte S1 Alias Pind.0 S2 Alias Pind.1 Set Pind.1 Set Pind.0 Pwm1a = 0 Do If I...
Zdefiniuj zmienną Temp jako Word. Jak ci ma wyświetlić 600 jesli zmiena Byte może przyjąc max wartość 255. Właśnie powyżej tej wartości będą ci sie wyświetlać dziwne rzeczy. No to może wytłumaczę jak to zrobić na zmiennej typu Byte według wyżej wspomnianej ideii. $crystal = 4000000 $regfile "attiny2313.dat" Dim Pomiar As Single Dim Temp As...
atom1477, przecież o ile jakieś przerwanie w międzyczasie nie zmienia Portd.5 to kod Nie chodzi o to żeby ustawił w końcu, tylko w momencie kiedy piszesz Pind.5 = 1: No ale Portd.5 zamiast Pind.5 byłoby przejrzyściej. W ogóle przejrzyściej było by stosować ten zapis jeszcze zamiast Set Portd.5. Tysiące razy było. Do rejestru port zapisujemy a z rejestru...
Generalnie wszystko musisz oprzeć o najmniejszy interwał czasu w tym przypadku 4ms. Dłuższe odcinki czasu należy odliczać poprzez zliczanie tych najkrótszych. [syntax=basic4gl] Dim Dir as Bit Dim I, J, K as Byte Do Pwm1a = I Pwm1b = I If Dir = 0 Then Incr I If I = 255 Then Dir = 1 End If 'jak max to zaczynam zmniejszać I Else Decr I If I = 0 Then Dir...
Zmień schemat: Przyciski podłącz do masy, elektrolit zamień na ceramik 100nF a diodę podłącz przez rezystor do zasilania a katoda do uc. Program: $regfile = "attiny2313.dat" $crystal = 1000000 ddrb =&B11111100 PORTB = &B00000011 ddrd =&B11111111 PORTD = &B00000000 do if pinb.0 =0 then waitms 100 portd.0 = 0 end if if pinb.1 =0 then waitms...
Podejrzewam, że te Waitms w obsłudze przycisków blokują wyświetlanie. Spróbuj je do testu usunąć. Oczywiście przyciski nie będą wtedy działać poprawnie, ale sprawdzisz wyświetlanie. Obsługa wyświetlania powinna być przeniesiona do obsługi przerwania, ale to już większa przeróbka programu. To przygasanie tak bardzo przeszkadza?
Na pewno musisz przy każdym ejściu do procedury obsługi przerwania wyjąć znak z udr, czyli in acc,udr ponieważ inaczej to przerwanie bedzie wywolywane caly czas, od momentu kiedy przyjdzie pierwszy znak. Nastepna rzecz, którą bym zmienił to użycie sei i cli. Przerwania włączaj dopiero po całkowicie zakończonej inicjalizacji. cli daj na samym początku...
Instrukcja waitms może przyjąć wartość tylko do 255 (bajt) poza tym kod powinien działać. Sprawdź fusebity.
Tu masz troszkę prościej, z użyciem operacji przesunięcia bitowego (krótszy kod, łatwiejsza zmiana prędkości linijki led) Dim Led As Byte Dim Kier As Bit Config Portb = Output 'wszystkie porty b jako wyjścia' Portb = &B00000000 'wszystkie porty b w stanie niskim Config Portd = Output 'wszystkie porty d jako wyjscia Portd = &B0000000 'wszystkie porty...
Odczyt z pamieci eeprom wrzucasz na poczatek programu bo nie potrzebujesz odczytywac tego w petli: {...} Dim X As Byte X = 800 Readeeprom X , 0 Do Portb.0 = 1 Portb.2 = 1 Waitms X {...} Poza tym rozpoczynanie glownej petli od opoznienia to wg mnie zly nawyk :D
Po ciężkich zmaganiach z metodą losową dla kolorów postanowiłem porzucić ten pomysł i zastosować przewidywalny sposób który będzie się powtarzał co jakiś czas. Może i nie jest to rozwiązanie pierwsza klasa, ale działa. Nie stosowałem jednak korekcji gamma, bo przy rozdzielczości PWM 8 bitów i zastosowaniu płynnego rozjaśniania było widać przeskoki (mruganie)...
A czy jest inna metoda sterowania? Spróbuj takiej na przykład: pulseout ' w podobnej pętli For/ next e marcus Dodałem SYNTAX - bo pewnie rano się spieszyłeś :-)
Dim State As Byte Dim I As Byte Do For I = 0 To 100 If Pind.4 = 0 Then State = 0 End If If Pind.5 = 0 Then State = 1 End If Waitms 10 Next I If State = 0 Then Rotate Portb , Left Else Rotate Portb , Right End If Loop
Zobacz jak ja to zrobiłem na Mega8 http://obrazki.elektroda.pl/8838731900_1... Program jaki zastosowałem korzysta z przerwania INT0 które po naciśnięciu klawisza wyprowadza procesor ze "śpiączki" , wysyła dane na IR i usypia go ponownie.Dla mnie takie rozwiązanie jest lepsze niż chwilowe zasilanie procesora poprzez diody. Poniżej wklejam...
Witam. Napisałem program do migania diodami i mam trzy pytania: 1.Czy da się ustawić cały port w stan spoczynku (coś w stylu PORTD = 0)? 2.Czy po każdej komendzie IF trzeba pisać END IF, czy da się to jakoś ominąć? 3.Czy poniższy kod jest poprawny, czy będzie działał? 1. Tak, możesz tak pozostawic. Bascom akceptuje kilka form ustawienia poziomu pinów...
$regfile = "attiny2313.dat" $crystal = 4000000 Config Pind.2 = Input Config Portd.0 = Output Config Portd.1 = Output Config Portd.3 = Output Set Portd.2 Przycisk Alias Pind.2 Dim Sekwencja As Byte Declare Sub Pierwsza Declare Sub Druga Declare Sub Trzecia Enable Interrupts Enable Int0 On Int0 Przycisk_przerwanie Do Loop End Przycisk_przerwanie:...
Witam, Mam mały problem z uzyskaniem danych z ramek odebranych po RS , chcę zrobić to za pomocą string ... ale zachowaniem struktury ramek, które wyglądają tak ramka 1: [syntax=vbnet] +CMTI: "SM",23 [/syntax] ramka 2 [syntax=vbnet] +CMGR: "REC READ", "+48123456789 ", " ", "17/03/25,17:04:26+04" STATUS [/syntax] napisałem mały program do wysyłania to...
Witam. Nie sprawdzałem tego, ale proponowałbym coś takiego: W pętli głównej programu Main: Do If K1 = 0 Then Call Generacja End If ....... Loop End W podprogramie Sub Generacja If K1 = 0 Then Set ...jakis port Waitms 50 Reset ... jakis port End If Do If K1 = 0 Then Loop End If If K1 = 1 Then Set ... jakis port Waitms 50 Reset ... jakis port Exit...
Witam, mam dziwny problem, SIM900 nie wysyła sms-ów. Program w Bascomie napisał mi kolega, nie należał do najkrótszych i wszystko działało, odbierał sms-y z komendami i włączał urządzenia, wysyłał sms, dzwonił, odrzucał połączenia itd. Kiedy wyodrębniłem z tego programu fragment który miał tylko wysyłać sms kilka razy zadziałał, a później przestał,...
Lecz zrobiłem sobie testy: Że na wyświetlaczu wyświetlam wartość B, i jak się okazało, jeśli zamienię Config Timer0 = Timer , Prescale = 1 na Config Timer0 = Timer , Prescale = 8 to wartość B zmienia się szybciej! Dlaczego tak się dzieje? Może dlatego że jest jest prescale =1 to przerwanie jest wykonywane co 32us czyli w czasie tego waitams 20 trafia...
Zrobiłem ostatnio coś takiego: http://www.elektroda.pl/rtvforum/topic15... Z poprawką Atoma chodzi dobrze. Dla ULN program należy uprościć do 4 lub 8 stanów. No i przerobić na ATTiny. Prędkość obrotową można regulować zmienianiąc wartość początkową Timer0. P.S. Postaraj się zapomnieć o waitms- należy to stosować tylko wtedy gdy nie zależy nam...
Dosyć odważnie sobie poczynasz na mikrokontrolerze mającym 2kB Flash i 128B SRAM :D ale do odważnych świat należy. Odchudziłem Ci trochę kodzik. Obsługa przerwania timera została stuningowana moim programem NoSave Tool. Teraz mikrokontroler nie odkłada na stos większości rejestrów a tylko te potrzebne - w tym przypadku tylko jeden :D Przekłada się to...
Po co stosować tu przerwanie? Kardynalny błąd to stosowanie polceceń opóźnień w przerwaniach. W tym programie problem tkwi w: If Przycisk = 0 Then Waitms 100 If Przycisk = 0 Then Incr Sekwencja If Sekwencja = 0 Then Incr Sekwencja If Sekwencja = 4 Then Sekwencja = 1 End If End If End If End If Popraw na: If Przycisk = 0 Then Waitms 100 If Przycisk =...
Może zaczniesz od czegoś łatwiejszego , będzie prościej i mniej stresująco . No, nie żartuj z faceta!. Co może byc łatwiesze (?) ? miganie diodą ?... Spójrz na jego ?credentials? w lewym oknie. Gośc jest tu około 10 lat, więc pewne rozeznanie w temacie posiada i ?kurs? z miganiem diodą z pewnością dawno ukończył. Może potrzebuje troche odmiennego spojrzenia...
Witam. Ostatnio zainteresowały mnie moduły do komunikacji mikrokontrolera z telefonem komórkowym poprzez sprzętowy UART. Korzystając z dostępnego telefonu typu Siemens S55 zbudowałem układ który docelowo ma sterować poprzez przekaźnik urządzeniami domowymi. Napotkałem jednak na problem z ładowaniem tego telefonu. Okazało się że nie da się ładować tego...
Czy ktos widzi jakis problem w ponizszym listingu?? Gdy telefon dzwoni zapala sie diodka i gasnie znaczy ze przechodzi do "Odbierzuart:" i na tym sie konczy:( $regfile = "m8def.dat" $crystal = 8000000 Baud = 19200 Dim C As String * 200 Dim Syg1 As Byte Dim Syg2 As Byte Dim B As Byte Dim A As Byte Config Serialin = Buffered , Size = 150 Enable Interrupts...
Spróbój ustawić kierunki portów TxD i RxD w attiny na odpowienio wejściowy i wyjściowy-może to to. Po 2 spróbój dać większe opóźnienie po: [syntax=basic4gl]Print "MOD001" ; I1 ; "," ; I2 ; Chr(13); Waitms 1 [/syntax] Nie 1ms a może 10ms...nie liczyłem czasu wysyłania danych, ale może w ciągu 1ms dane nie zdążą przejść?
Od pewnego czasu męczę się z transmisją danych przez rs232 z mikrokontrolera do PC i z powrotem. Układ programowany jest w Bascom. Problem polega na tym że dane są przesyłane lecz błędne czyli nie takie które zostały wysłane. np. po zastosowaniu Print "abc" w emulatorze wyświetli mi buźki i inne znaczki. Baud ustawiałem już na najniższe prędkości, rezonatory...
Witam Napisałem program, który ma za zadanie odczytać właściwie SMS-a wysłanego do modułu [syntax=vbnet] $regfile = "m8515.dat" $crystal = 7372800 $baud = 9600 $hwstack = 64 $swstack = 64 $framesize = 64 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1 , Db7 = Portb.0 , E = Portb.4 , Rs = Portb.6 Config Serialin...
Witam mam problem z wysłaniem SMS za pomocą komend AT i telefonu SE T610. Komunikacja po uart jest prawidłowa inne komendy jak np dzwonienie działają poprawnie, jednak przy próbie wysłania SMS zwraca ERROR. Kod programu: [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 $baud = 19200 'predkosc UARTu '### Konfiguracja ########################################...
Zwieram do masy PIND.0 i kolejno w odstępie 300ms na każdym z pinów portu B pojawia się napięcie później w zależności jak jest ustawiony potencjometr jest liczony czas zwłoki, następnie kolejno się wyłącza. Chciałem dodać ADC do liczenia tego czasu 300ms [syntax=basic4gl] For X = 0 To 7 Portb.x = 0 Waitms 300 Next X[/syntax]
Zajrzałem do skompilowanego pliku i widzę że kompilator w ogóle nie używa tu R2 i R3 więc mi je zostawił ;) Od pewnego czasu w Bascom do rejestrów można się odwoływać prosto z kodu. Ciekawe którą wersję Bascom masz. Pewnie znowu schody... U mnie program się kompiluje na 96% [syntax=vbnet] $regfile = "attiny13.dat" $crystal = 9600000 $hwstack = 16 $swstack...
Udało uruchomić moduł. Tzn. program w Bascom, zawiera między innymi dwa podprogramy, Setup_esp8266 i Send_esp8266 . Miałem co prawda mały problem, ale wynikał on z niewłaściwej kolejności wysyłania znaków CR i LF. Prawidłowo powinno być: [syntax=text] Print "AT+RST" + Chr(13) + Chr(10) [/syntax] O ile konfiguracja nie nastręcza problemów ( bo idzie...
Witam ponownie. Przepraszam że tak post pod postem ale widzę że nikt nie chce pomóc więc wziąłem się do roboty i prosiłbym o sprawdzenie czy ten mój program ma prawo w ogóle działać :) $regfile "m32def.dat" $crystal = 16000000 $baud = 19200 Config Portb.0 = Output Config Portb.1 = Input Config Portb.2 = Input Declare Sub Sms_pozar Declare...
Witam Obecnie walczę z odbiorem danych przez UART. Całość działa, ale mam wrażenie, że odbiór danych powinien być inaczej. Chodzi oczywiście o to, że treść odebranego SMS jest w drugiej linii i używany do tej pory kod wyświetla to trochę dziwnie. Używam trybu tekstowego i odebrane SMS'y wysyłam od razu na UART. komenda muszę dwa razy zrobić Mid. Jeszcze...
oto listing: Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Pwm1a = 251 Do If Pind.0 = 1 Then Pwm1a = 251 If Pind.0 = 0 And Pwm1a > 0 Then Decr Pwm1a Cls Lcd "pwm1a=" ; Pwm1a Waitms 21 Loop : End pod 90s2313 działa pod attiny juz nie
Programowałem dwoma programatorami ISP pierwszy to samoróbka bez żadnego bufora przy lpt a drugi to stk200, na obydwu jest taki sam efekt. Gdybym miał jakis programator szeregowy to też bym spróbował na nim. Na wszystkich portach mikro kontrolera jest tak samo. Program do programowania to bascom AVR, dwie wersje przetestowane. Próbowałem też wgrywać...
Witam ponownie ! Kiedyś gdzieś czytałem że projekt z Bascoma 8051 można przenieść do Bascoma AVR i wjakiś sposób automatyczny przerobić listing pod AVR (ATtiny2313) Pozdrawiam. Stefan Ps. Jeśli będziesz miał problem a nie "pali się" to popróbuję ten listing przerobić na ATtiny2313. Już udało mi się przerobić na AVR (ATtiny2313) 'przerobiłem, kompiluje...
Diody migają po dwa razy, kolejne dwa razy zawsze po naciśnięciu przycisku, tak w kółko. Jak nie naciskam to nic się nie dzieje. Zdaje się że taki zamiar był tego programu... Niemniej jednak spróbuj ten code: [syntax=basic4gl][/syntax ... $regfile = "attiny13.dat" $crystal = 9600000 Config Portb = &B011000 Portb = &B000010 $hwstack...
Witam, nie chcę zaczynać nowego tematu więc piszę tutaj i proszę o pomoc. Zaczynam zabawę z Atmega8 i Siemens c35. Podłączyłem c35 pod Atmegę piny 5 i 6 w telefonie. Kwarc 8Mhz zewnętrzny (próbowałem też na wewn.). Ogólnie kwarc i telefon podłączone jak na obrazku http://obrazki.elektroda.net/9_125404786... [syntax=basic4gl] $regfile = "m8def.dat"...
Witam Wszystkich Pisze kod do zegarka binarnego (zaczynam) jestem na etapie sekund. Licznik działa ale nie włącza poszczególnych diod led. Sterowanie diod jest za pomocą multipleksowania. Skupiłem się na razie tylko na wyświetlaniu sekund jak to ruszy to reszta pójdzie łatwo. Procesor attiny 2313 kwarc 20MHz Bascom. [syntax=basic4gl] $regfile = "attiny2313.dat"...
waitms timer0 atmega8 waitms command waitms
chrysler voyager hamul obliczyć obroty silnika elektrycznego remote server
suszarka bauknecht mikrokomputer cobra1
Czy licznik Norax 3 obsługuje zdalny odczyt? Whirlpool WIS 5010 – lokalizacja kondensatora pompy myjącej, wymiana, parametry