Z procka, z tego co wiem, to nie. Mozesz kupic sobie EEPROM z identyfikatorem unikalnym np. [url=http://ww1.microchip.com/downloads/... Mozesz sobie tez podlaczyc scalak o podobnej funkcjonalnosci na 1wire (sa takie). Dla pocieszenia powiem, że większość nowych ARMów ma unikalne serial numbery w krzemie ;]
Nie dokładnie opisałem. U mnie A01 jest uzyskiwane ze zmiennej Sring - i tu jest problem jak to wyświetlić. Może tak - w wyniku operacji na zmiennej string otrzymuję wynik A01(też string). I teraz potrzebuję wyświetlić to co jest zapisane pod zienną A01 (czyli w przykładzie tekst1. c jest string = 5 , d jest string = 0, A50 ="Test1" B = C + D E = Val(b)...
Jak zadziała polecenie Len() ? obliczy długość dołączonych zmiennych T1 i T2 ? Tak, choć samodzielne sprawdzenie tego choćby w symulatorze zajęło by Ci 60 sekund ;-) Oczywiście mowa tutaj o zmiennej Command, która, zakładam, jest stringiem.
W takim razie potrzebujesz konwersję string na int. http://4programmers.net/C/Konwersje_int_...
zumek jesli masz na mysli mnie to uzywam atmega32 i mam jeszcze 12kb wolnego miejsca wiec jest ok ale jak braknie to przejde na atmega 128 . dziekuje wszystkim za pomoc
Wybieg przesuwający przecinek. Wynikiem będzie, na przykład, dla temperatury 22,4 st C 224 i przecinek należy sobie w stringu dorysować :D
Można to tak zrobić: [syntax=basic4gl]Dim Command As String * 4 , Bajty_command(5) As Byte At Command Overlay Printbin Bajty_command(1) ; Bajty_command(2) ; Bajty_command(3) ; Bajty_command(4) ; Bajty_command(5)[/syntax]
Jak zwykle czasu nie ma, ale nie mogłem się powstrzymać. Nakręciłem pierwszy klip - ahahahaha :D No musiałem się pobawić edytorem. Efekt to półtora minuty magii :D Ahahaha miałem kupę zabawy z tym :D Przy okazji możesz zobaczyć jak się używa wbudowanego symulatora by zadawać wartości ADC ;) Twój pomniejszony kodzik też poniżej, tylko używając poza symulatorem...
Może spróbuj wydłużyć stringa U_wy. Chyba że nie oczekujesz wartości powyżej 9.9.
jeżeli już uzyjesz procka a dwoma uart'ami to budujesz procedure która odbiera od twojego urządzenia string'i jeżeli wykryjesz odbior pierwszego string'u (czyli nagłówka) np if odebrany="wzór nagłówka jeden" then ustaw flagę że nastepny string to będą pierwsze dane wtedy : if flaga1=1 then pierwsze_dane=odebrana:reset flaga1 z drugim nagłówkiem i drugimi...
Klawiature musisz potraktować jak jeden zwykły przycisk. Tyle że zwykły przycisk ma stan wysoki jeśli nienaciśnięty a ten przycisk zwraca 16 jeśli nienaciśnięty. Napisałem na szybko dwa przykłady. Jeden działa bezposrednio na wartosciach a drugi na stringu [syntax=vbnet] Dim Key As Byte Key_val As Byte , Lock As Byte , Licznik As Byte Dim Val_str As...
Zmienna Var musi być zdefiniowana jako łańcuch. [syntax=basic4gl]Dim Str_ver As String * 100 Str_ver = Version(3) Print Str_ver [/syntax]
heh... a wystarczyło żebyś napisał: "co sie męczysz chłopi, zamień funkcją time() zmienne typu byte na string z godziną i porównaj" .... tablicę prawdy rozrysowałem juz wcześniej :P
Config DP działa od wersji 2.0.1.0, jeżeli masz tą lub nowszą wersje Bascom'a w Fusing zamień "#.##" na "#,##".
Witam, No ale to właśnie robi instrukcja MID...... pozdrawiam
Przerobiłem tak, żeby wysyłał testowo tylko jedną wartość ( losową ) co 8 sekund Dodano po 18 Dołożyłem Clear Serialin0 Com1_str = "" czyli [syntax=vbnet] $regfile = "m328pdef.dat" $crystal = 8000000 $hwstack = 100 ' rozmiar stosu sprzętowego $swstack = 100 ' rozmiar stosu programowego $framesize = 128 $baud = 19200 '************ Uart 0 Config Serialin0...
Bo Const to stała a Ty potrzebujesz czegoś jak DB albo PROGMEM. Czyli danych umieszczonych w pamięci. A stała niekoniecznie będzie tam umieszczona. Stała może być np. wbudowana w rozkaz assemblera (akurat nie tutaj ale inaczej to może być). Zrób raczej tak: Dim Atmega As String Dim Attiny As String Atmega = "Atmega" Attiny = "Attiny"...
No coś w ten deseń :P Ten reaguje kiedy na końcu pojawi się znak 13 [syntax=vbnet]$regfile = "m644pdef.dat" $crystal = 16000000 $hwstack = 64 $swstack = 100 $framesize = 200 $baud = 38400 $baud1 = 38400 Config Submode = New Open "COM1:" For Binary As #1 Open "COM2:" For Binary As #2 Config Serialin0 = Buffered , Size = 100 , Bytematch = 13 ' from ESP8266...
sprawa banalnie prosta a o to przepis : Atmega8+LCD+MAX485 ,protokół sam możesz zrobić w bascom ,tą cześć raczej trudno nazwać protokołem ,raczej atmega zajmowała by sie odbiorem stringów które by latały po RS leprzy protokół wyglądał by tak : PC->AVR string+CRC PC<-AVR OK opisy znajdziesz na elce
Witam, poniżej zamieszczam kod z Bascoma mojego sterownika BMS, w tej chwili kontroluje temperaturę, czas, Rs232, LCD 2x16. Obsługa z klawiatury lub pilota RC5, w obecnej chwili rozwiajm go o dostęp przez internet. zajmuje ok 8kb pamięci więc w A162 będziesz miał jeszcze drugie tyle pamięci. Ja kożystam z A32 Pozdrawiam. PS. daj znać jak zakończysz...
skoro umiesz wysłać tekst do drugiej atmegi to jak możesz nie umieć wysłać sobie jakichś zmiennych - oj chyba przegrzało przy ubieraniu choinki więc podpowiem ;) .... można to zrobić na milion sposóbów oczywiście i wszystko zależy od tego jakie to są zmienne, ale np załóżmy że masz zmienną typu Byte. 1. dokonujesz konwersji tej zmiennej na postać String...
https://obrazki.elektroda.pl/9317464400_... Witam Przedstawiam stację meteo nad którą pracuję już kawałek czasu. Początek prac to też mój początek zabawy z Arduino. Zaczęło się od gotowego projektu malutkiej stacji z wyświetlaczem OLED. https://obrazki.elektroda.pl/5611267500_... Wtedy już samo wgranie programu do...
Czasem coś tam piszę na AVRy ale głównie w BASCOMie ew. w C++... Wyznaję zasadę, że jeśli zachodzi potrzeba użycia języka niższego poziomu to należy użyć... mocniejszego procesora ;) Ciekawe odwrotne to właściwego podejście. Choć dziś.....
najprościej : atmega1 atmega2 Rx----- ----Tx >< Tx----- ----Rx najprosciej program ? chyba bascom :P atmega1 : print "1" atmega 2 Dim Bufor As String * 24 Input Bufor Noecho If Ischarwaiting() = 1 Then '1 - odebrano znak,0 - pusty bufor ' tu odbierasz dane i robisz z nimi co chcesz End If
Inna sprawa tych warrningów a inna to co ten kod tam oznacza bo jest poplątany. Po pierwsze musisz wiedzieć (można o tym poczytać w Helpie pod hasłem "Declare Sub"), że deklarując sub określasz też czy subowi będziesz przekazywał tylko kopie wartości danych zmiennych czy też przekażesz mu bezpośrednio te zmienne poprzez ich adresy. Dlatego są określenia...
Miałem chwilę więc chciałem napisać szybko program na Aduino Mega2560, ale potem sobie przypomniałem, że tam mikroskopijny kwarc a błąd przy 16MHz dla 115200 jest za duży. Wziąłem więc Mega128 bo była wolna i pod ręką. Napisałem program w którym przez Charmatch odbieram string "1234567890" po odebraniu Entera. Żeby było uczciwie to jeszcze odpaliłem...
...problem polega na tym że nie wiem jak zapisać te dane, chciałbym je otrzymać binarnie na LCD lub w terminalu po Rsie.Prosze o pomoc. drugie problem. jak uskutecznić w tyum przypadku transmisję przy użyciu instrukcji shift in? atmega dostaje zegar i dane z zewnatrz (wlasnie te 48 bitow). Ad.1 Użyj tablicy i/lub stringa Ad.2 SHIFTIN pin , pclock ,...
Przekonwertować na dane liczbowe. Dodać i ponownie przekonwertować na dane znakowe. Funkcje: STR(), VAL().
Wklejam ten kod [url=http://bascom-forum.de/showthread.p... właściwego postu . [syntax=basic4gl]'----------------------... ' Dateiname : TEA5767-TP.bas ' Revision : 1.0 19.08.2012 ' Controller : AVR ATmega8 ' Autor : Thomas Palluthe (www.tp-homesoft.de)...
Po to poradziłem Ci aby użyć do tego tablicy aby w łatwy sposób, przy użyciu pętli For...Next można było nią zarządzać (w tym i wyświetlać). Dim Seq(5) As String * 10 Dim Tekst As String * 10 Dim Index As Byte Tekst = "Aktualna" For Index = 4 to 1 Step -1 Seq(index + 1) = Seq(index) 'przesuwanie 4 do 5, 3 do 4,... Next...
Tak na szybko mam takie rozwiązanie: Dim Go_s As String * 2 , Mi_s As String * 2 , Se_s As String * 2 Go_s = Str(godzina) Mi_s = Str(minuta) Se_s = Str(sekunda) Lcd Format(go_s , "00") ; ":" ; Format(mi_s , "00") ; ":" ; Format(se_s , "00") Wartości...
Próbowałeś zmieniać word na stringi (funkcją STR() ) ?
Zmień: dim Objetosc_lcd as string*10- a potem jakie x-sprawdź. Bascom jest wolny i gruby- jak wół. Można na nim w pewnym stopniu polegać Ale opanowanie rasowego konia jakim jest C- jest trudniejsze- ma sam na wiele spraw własne zdanie. Brakuje oscyloskopu. Chyba jest-widać sonde. P.S. W głównej pętli wywołujesz menu w którym "siedzisz" przez waitms...
jak zadeklarować te zmienne? A np. tak dim Bufor as string * 16 ' 16 - maksymalna długość odebranych danych dim Bufor_znak as byte dim Bufor_flaga as byte
Wyrzuć ten wzór i obmyśl jakiś inny. W tej postaci to się absolutnie nie nadaje. Z ADC możesz uzyskać maksymalną wartość 1024, teraz podnieś to do potęgi 6 i wychodzi ci absurdalna liczba, program wywala się juz na pierwszym obliczeniu. Obliczanie napięcia może wyglądać tak: [syntax=basic4gl] Dim Obl_nap As String * 6 Dim Wartadc As Word Dim Tymcz As...
Na razie zmieniłem nieco sposób zapisu - po testuję przez noc, jak będą problemy to będziemy się zastanawiać. Zrobiłem to tak: [syntax=vbnet] '*********************** Obs-uga karty SD Sub Write_to_sd Sd_year = "20" + Str(rok) ' wartosc zmiennej Sd_year typu string ze zmiennej year If Miesiac < 10 Then Sd_month = "0" + Str(miesiac) Else Sd_month =...
Dlaczego do bufora 32 znakowego wpisujesz 64 znaki? Lekko zmodyfikowałem funkcję ReadUart, aby wypisywała zmienną buf: Jakbyś jeszcze kończył string w miejscu, gdzie skończyły się dane, to nie wypisywałyby się śmeci. Coś w tym stylu: [syntax=cpp] ret = ReadFile(hPort, buf, len,&retlen, NULL); buf[retlen] = 0; cout << buf; [/syntax] Tak w...
Wykombinowałem coś takiego :), przykład można uruchomić w symulatorze (dane wejściowe np. porta.1): EDIT: poprawiłem mały błąd w przykładzie, bity można nawet kopiować jeżeli port źródłowy i docelowy jest ten sam [syntax=basic4gl]$regfile = "m32def.dat" $crystal = 16000000 $hwstack = 64 $swstack = 64 $framesize = 64 $baud = 57600 Dim Src_port_str As...
a to program Dodano po 11 Mam problem z załącznikiem może teraz.:) Dodano po 6 plik się nie dodaje ?? wyślę tak : $regfile = "m8def.dat" $crystal = 11059200 '$baud = 9600 '$baud = 19200 $baud = 38400 Echo On '******** KONFIGURACJA WYŚWIETLACZA LCD ****************************************... Config Lcd = 20 * 4 ' Deklaracja...
Witam wszystkich, Panowie mam takie pytanie dotyczące kawałka kodu odpowiedzialnego za transmisję danych programowym uartem. [syntax=basic4gl] dim sms as string*70 dim ss1 as string*20 dim ss2 as string*20 dim ss3 as string*20 dim i1 as integer dim i2 as integer dim i3 as integer Ss2 = Str(i2) Ss2 = Format(ss2 , " 0.0") Ss1 = Str(i1) Ss1 = Format(ss1...
"Wydaje" mi się, że coś takiego powinno działać: [syntax=vbnet] Local Domoticz_cmd As String * 200 Domoticz_cmd = "AT+CIPSTART=" + Chr(34) + "TCP" + Chr(34) + "," + Chr(34) + Domoticz_ip + Chr(34) + ",8080" ' typ polaczenia oraz IP serwera Print Domoticz_cmd Waitms 200 Domoticz_cmd = "GET /json.htm?type=command¶m=udevice&id... Domoticz_cmd = Domoticz_cmd...
To jest proste jak świński ogon :D ahahahaha, ale napisz kawałek kodu. Czy masz tam jakiś LCD czy nie, czy masz tam jakiś Timer ustawiony do odmierzania sekundy czy Wait`ujesz :D Czy w dokumentacji czujnika pisze, że nadaje tez na końcu niewidoczne w terminalu znaki 13 lub 10? EDIT: aaa masz tu taki prosty. Napisałem przy śniadaniu więc błąd mógł się...
Witam Mimo, że większość proponowanych tutaj rozwiązań podłączenia RFM12 do Atmegi wykorzystuje SPI programowe, ja podłączyłem tradycyjnie, przez SPI sprzętowe - mimo, że nie miałem problemów z wgrywaniem kodu do Atmegi spiętej z RFM12, to uruchomienie ich razem jest problematyczne ( każde osobno działa bez problemu ) [syntax=basic4gl] $include "Config_AVR-DOS.BAS"...
No to zaczynamy po raz kolejny. Coś takiego jak stworzyłeś to niestety za szybko nie będzie działać. Mega z kwarcem rs 14 z groszami działa naprawdę szybko i można zrobić bardzo dużo w jedna sekundę. Do odbierania i wysyłania danych można sobie napisać własną procedurę - nawet w bascomie i jest ona sporo szybsza i działa rewelacyjnie. Deklarujemy przerwania...
Wydaje mi się że masz bład w transmisji ze względu na to że masz kwarc 4Mhz i baud 1200. Tak przy okazji zegar masz przestawiony na wewnetrzne 4MHz czy zewnetrzny kwarc? Jesli na zewnetrzny to ustawiles prawidlowo fuse bity?? Podam Ci prosty program który u mnie dziala bez zarzutu przy kwarcu 8MHz i predkosci transmisji 9600: $regfile = "m32def.dat"...
Nie,ma liczyć litry tak jak dystrybutor . Dodano po 2 Nie wiem w jaki sposób dodawac litry do zmiennej po przekroczeniu okreslonej liczby impulsów z przepływomierza to co znalazłem to liczone wszystkie w czasie a tu chyba chodzi o przepełnienie licznika Czas tu nie ma znaczenia! Użyj dowolny timer w charakterze licznika (Counter), i tak jak sugerowano...
probowalem tak i tak ,i nic nie daje ;) na szybko sklecilem pod atmege program w bascomie... $crystal = 8000000 $baud = 9600 Config Serialin = Buffered , Size = 100 Config Lcd = 16 * 2 'LCD Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portd.7 , Db7 = Porta.7 , E = Portc.3 , Rs = Portc.2 Dim Znak As String * 1 Waitms 100 Print "AT"...
Witam. Napisałem program w bascomie, zwykły termometr z wyjściem na Mikroprocesor to Atmega8 + lcd + DS18b20. Wskazuje tylko tem:25.5oC ,brak reakcji na tem.Nie wiem ,gdzie zrobiłem błąd. Może jakaś podpowiedż. Poprawiłem SYNTAX - następnym razem proszę robić to prawidłowo: Instrukcja: http://www.elektroda.pl/rtvforum/viewtop...
Problem był w odbiorniku. Napisałem coś takiego jak poniżej i było OK. Ale będę próbował tą drogą którą proponujecie,bo z tego co wyczaiłem to instrukcja Print przesyła zmienną np. 467 po jednym znaku, a na końcu CR, ale tak mogę przesłać jedną zmienną, zastanawiam się jeszcze jak w najprostszy sposób przesłać kilka zmiennych. [syntax=basic4gl]$regfile...
klawiatury nigdzie nie podłączam, dlatego właśnie robię to po uarcie przez FT232, gdzie podłączona atmega pod pc wymaga tylko programu. Wcześniej jak robiłem program, przypisanie zadania jednemu klawiszowi klawiatury nie sprawiało mi większych problemów Uart = Inkey() If Uart > 0 Then End If If Chr(uart) = "1" Then Gosub...
Motam się znowu okrutnie z uartami. Mam dwa urządzenia i chcę aby w każdym nadawanie i odbieranie chodziło w przerwaniach. Urządzenia A odpytuje cyklicznie co kilka sekund urządzenie B. Całe odpytywanie polega na tym że: Moduł A wysyła poleceniem: Print #6 , "RED" ; chr(13) ; zapytanie o treści "RED" i na to zapytanie urządzenie B...
Dodaję cały program łącznie z plikami: [syntax=vbnet] $regfile = "m2560def.dat" '$regfile = "xm128a1def.dat" $hwstack = 128 $swstack = 128 $framesize = 128 Config Submode = New Const False = 0 Const True = 1 #if _xmega = True $crystal = 32000000 $include "XMegaPLL.inc" #else $crystal = 16000000 #endif 'Const Lcd_enable_spi = True 'Const Lcd_use_soft_spi...
to z wycięciem k nie było do twojej odpowiedzi. I widzę różnicę. Chcąc zastosować Twój sposób musiałbym utworzyć około 40 zmiennych typu string*8 dim nazwa_cz1 as string*8, nazwa_cz2 as string*8... nazwa_cz40 as string*8 stosując tablice muszę wysyłać nazwę ze wskazaniem elementu. Nie wiem czy jest w Bascomie jak w C, że nazwa tablicy jest adresem pierwszego...
Witam Dodam że szukałem na forum odpowiedzi na to pytanie ale nie znalazłem 100% pewnej informacji. Otóż posiadam w atmedze cztery sprzętowe uarty i na jednym z nich ma pracować mój poprzedni już działający moduł(którego już nie mogę przeprogramować aby zmienić coś). Transmisja wygląda tak: Z modułu A (atmega32) wysyłam poleceniem : Print #5 ,"RED"...
witam, Od razu do rzeczy. Jak w temacie! Program odczytuje po 1wire temperatury z 2 czujników. Wszystko działa poprawnie (płytka, czujniki dodam ds18b20). Kod programu poniżej. Error : 261 Line : 39 Array expected [ID1] Error : 261 Line : 43 Array expected [ID2] Error : 124 Line : 43 LOOP expected ostatnim errorem...
Witam Mam dwie zmienne typu string i chcę zrobić tak : Dim Energia_s As String * 2 Dim Energia_na_lcd As String * 2 Energia_na_lcd = Enegria_s Po czym kompilator wywala mi błąd 242 source varibles does not match the target varible, dziwne ? Jak więc mam to zrobić ?
$regfile = "m644pdef.dat" ' definiujemy układ $crystal = 12000000 ' ustawiamy prędkość zegara $baud = 19200 ' ustawiamy prędkość transmisji $hwstack = 200 ' ustawiamy wielkość stosu $swstack = 200 $framesize = 80 'definiujemy podłączenie i rodzaj wyświetlacza LCD Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 =...
Powiem tak, może nie przez USART ale inaczej robiłem testy a mianowicie do programu w różnych miejscach wklejałem komendę zapisu z powrotem do kart SD i bezpośrednio po odczycie było ok, po przejściu na string*3 było ok, po przejściu ze string*3 na byte tez było ok. Mam wrażenie ze sie ram nadpisuje i mi niszczy zmienne, ale dla czego tylko wtedy gdy...
Witam Wzorując się na jednym z przykładów chciałem wyświetlać dane z GPS. GPS działa poprawnie, wyświetla dane w oknie terminala. Podłączenie TX GPS z Rx AtMega nie powoduje żadnej reakcji $regfile = "m32def.dat" $crystal = 8000000 $baud = 9600 ' predkość transmisji $hwstack = 64 ' rozmiar stosu sprzętowego $swstack = 64 ' rozmiar stosu programowego...
64kb brakło na 12 DS-ów ? Ja zrobiłem termometr na 8 DS-ów z wykresami , liczeniem średniej na liczbach "single" , zapisem do eproma i kilkoma drobiazgami wszystko to na lcd graficznym i zajęło mi 7,38kb w Bascomie . Czy wykorzystujesz wszystkie nogi procka ? Ja podłączyłem DS-y do osobnych wyjść , procedurę pomiaru temperatury mam jedną , zmieniam...
Dzięki za cenne uwagi. Teraz wiem czego szukać. Generalnie zmiana kontrastu pokaże że dolna linia nie działa. Szpilki na zasilaniu przy LCD mogą się pojawić, nie dałem dodatkowego kondensatora. Inicjalizacja wyświetlacza co pewien okres czasu na pewno pomoże. Poprawki wykonam w Piątek lub Sobotę i się odezwę za tydzień. Kontrast jest regulowany dla...
Sprawdź jak masz ustawiony terminal (bity stopu, parzystość) bo jeśli nie określasz tego w kodzie programu to ustawienia brane są z tych jakie masz ustawione w IDE. Jeśli prędkość procesora na pewno odpowiada tej zadeklarowanej to możesz spróbować tak. [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 $baud = 19200 Echo Off Dim Str_1 As String...
Mam tak samo fusy ustawione jak Ty masz i program chodzi . Ograniczylem programik - [syntax=vbnet]$regfile = "m128def.dat" $crystal = 8000000 Config Com1 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 Config Com2 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 Open "com1:" For...
Zrobiłem to tak: 'Odebranie jakiejkolwiek informacji z modułu GPS $regfile = "m16def.dat" $crystal = 8000000 $baud = 9600 Enable Interrupts Enable Urxc On Urxc Przerwanie_rx Config Lcd = 20 * 4 ' Wyswietlacz 20x4 Config Lcdpin = Pin , Rs = Porta.0 , E = Porta.1 , Db4 = Porta.2 , Db5 = Porta.3 , Db6 = Porta.4 , Db7 = Porta.5 Cls Dim Dana As...
https://obrazki.elektroda.pl/2807245700_... Witam, Temat odgrzany, i nie mojego autorstwa, ale warty przypomnienia. Potrzebowałem aby pewne urządzenie wystawiało mi do PCta kilka klawiszy klawiatury. Słyszałem już kiedyś o projekcie SWUSB pisanym w jedynym języku który choć trochę znam - Bascom. Zaprojektowałem jednostronną niewielką...
Raczej nie może działać prawidłowo, zmienna Z jest typu String. Przed dzieleniem należy przekonwertować String do zmiennej liczbowej: [syntax=basic4gl]Dim Z1 As Byte ' ' Z1 = Val(z) Y = Z1 / 9[/syntax]
Witam! Napisałem sobie obsługę klawiatury matrycowej 3x4 w bascomie. Nie używam umieszczonej tam funkcji getkb(), ponieważ podłączona jest do różnych portów. Sprawdzanie wciśniętych przycisków chcę przeprowadzić w przerwaniu od wewnętrznego zegara TIMER0. Na ATmega32 wszystko bez problemu działa. Płytka, pod którą to robię działa niestety na ATmega8515....
Ile pamięci zżera wam obsługa bootloadera (o ile są tu użytkownicy Bascom AVR) ? Mi zostało jakieś 40% z 64 kB. Wygląda na w miarę przyzwoicie? Jakieś materiały (godne polecenia) dla kogoś, kto nie uruchamiał jeszcze nigdy bootloadera, a chciałby to zrobić w Bascom AVR, włącznie z obsługą crc, bo przyznać muszę, że obecna komunikacja - sterowanie urządzeniem...
Nie wiem co masz przed pętlą główną, bo jeżeli tam wrzucasz coś na LCD to trzeba to też wziąć pod uwagę. Jeżeli w pętli głównej zostają na LCD jakieś śmieci "na końcu" to ja dodaję do stringa jakieś "spacje" i jest OK. Czyszczenie całego LCD nie wchodzi w grę w każdym obiegu pętli bo źle to wygląda (widać odświerzanie). Generalnie jeżeli wystarczy Ci...
Pomyśl..Cztery znaki chcesz upchać w trzyznakowym stringu.. Nie wiesz jak to działa. Kiedy deklarujesz String * 10 rezerwujesz 11 bajtów bo każdy string ma znak swojego końca. Nie musisz wykorzystać wszystkich bajtów. String może być krótszy i zaraz po znakach postawiony będzie znak końca..ale zarezerwowałeś 11 bajtów i tam program nigdy nic nie będzie...
"Ćwierkanie" moim zdaniem nie jest związane ze sterowaniem, ale nie twierdzę że tak jest na pewno. Sterownie wygląda następująco: uC wysyła komendę po UART i zaczyna się odtwarzanie w tym czasie nie przesyłam żadnych innych poleceń. W czasie odtwarzania jedynie uC odbiera informacje z VMusic, w kolejności (nazwa pliku, nr. ścieżki, wykonawca, tytuł,...
Chłopaki dajcie na luz. Odbiegamy od tematu. Właśnie wyszła nowa wersja Bascoma 2.0.2 w której dodano : mcs bootloader new reset option. you can send a string for reset. To send special ascii use {}. {027} will send ascii 27. To send { you have to use the ascii value as well since { is used to send special characters. - mcs bootloader can use DTR or...
Wydaje mi się że nie opłaca się ładować tych 32 bajtów do eepromu , pewnie procedura odczytująca zajmie więcej miejsca. Ale :) można by tam coś innego władować, w eepromie masz coś około 500 bajtów wolnych. Wolne miejsce można by wykorzystać na teksty wyświetlane na LCD. Niektóre łańcuchy też się powtarzają. Często masz np . [syntax=basic4gl]Locate...
Wg tego programu za pierwszym razem podaje mi numer karty, potem jest już tylko error :// $crystal = 8000000 $baud = 9600 Dim T As String * 10 Enable Interrupts Cursor Off Locate 1 , 1 Lcd "test1" Wait 1 Cls Do Input T If T <> "*5951991" Then Locate 1 , 1 Lcd "Error" Wait 1 Cls Else Lcd T Wait 2 Cls End If Loop Jak...
Siemka ugh123 :D Co prawda nie mam tego wyświetlacza (Nokia), lecz o wiele większy. Ale do do tematu. Pliki ".bgc" są zapisywane w 8-bitowym kolorze, Ja pracuję z 16-sto bitowymi kolorami, więc konieczna jest konwersja z 8 na 16 bitów. Informacje na temat wymieniony przez Ciebie znajdziesz w sieci (poszukaj). Nie dam Ci gotowca,i sądzę, iż nikt Ci nie...
Witam Piszę Programik w Bascomie, wyplułem na wyświetlacz między innymi temp. z Lm35 dokładność do 0.5 stopnia, lecz waha się do 1.5 stopnia (temp. skacze). Jak uśrednić to. Czytałem troszkę posty że trzeba próbkowanie zrobić, lecz nie wiem jak się zabrać... O to kod: [syntax=bascom] $regfile = "m8adef.dat" $crystal = 16000000 '*******************Konfiguracja...
$regfile = "m8def.dat" $crystal = 1000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.6 , Db5 = Portd.5 , Db6 = Portb.7 , Db7 = Portb.6 , E = Portd.7 , Rs = Portb.0 $lib "mcsbyte.lbx" Cursor Off Config Pinb.2 = Input Portb.2 = 1 Config Rc5 = Pinb.2 Dim A As String * 2 'Deklaracja umożliwiająca działanie komendy GETRC5...
- powyżej 10W: "Pwej= Tak będzie się wyświetlało jeżeli pierwszym bajtem zmiennej String Pwej będzie 0. Zero jest końcem łańcucha (dwie możliwości takiego błędu już podałem stos, albo nadpisanie przez inny łańcuch ;)). Nie piszesz też jaka wersja Bascoma to jest, może w którejś wersji był błąd z funkcją Fusing. Możesz podglądnąć co się dzieje z Pwej...
Nie odkrywajmy koła od nowa ;) Kod dla takiego wyświetlacza jak na obrazku. https://obrazki.elektroda.pl/2987586400_... Wyciąłem go z kodu który w minute można znaleźć w DuckDuckGo :P Jeśli ktoś ma inaczej podłączone segmenty to musi tylko edytować tablicę Data. [syntax=vbnet]$regfile = "m328pdef.dat" $Crystal=16000000 $hwstack=32 $swstack=8...
Witam w Nowym Roku Chciałem zapytać, czy ma znaczenie, do którego pinu kontrolera jest podpięte wejście sterujące wyborem karty SD ? Korzystam z kodu podanego w helpie - zamieniłem tylko PortB.4 na PortD.6 i cały czas mam aktywną kartę SD, co oczywiście skutkuje zablokowanie kontrolera. Jako, że nie działa mi to razem z innymi funkcjami, więc próbuję...
Witam serdecznie Jako kolejny krok nauki uczę się oprogramować bluetooth hc-05 oraz atmega 8 sprzęgnięte z aplikacją w telefonie. Połączenie bluetooth jest nawiązane po naciśnięciu przycisków w telefonie wysyłana jest dana typu string. Jeden przycisk wysyła daną o wartości "zapal", drugi przycisk o wartości "zgaś". Do portu atmegi8 podłączona jest dioda...
Witam Staram się zrozumieć twój kod, ale strasznie ciężko mi to idzie. Czy mogę prosić o zakomentowanie zmiennych, tych literowych to może dostanę jakiegoś błysku :D Dim H As Byte Dim Dl As Byte Dim I As Byte Dim J As Byte Dim K As Byte Dim X As Byte Dim Temp As Byte Dim Znak As String * 1 Dim Tekst As String * 60 Dim Ascii(60) As Byte Dim Wiersze(25)...
Nie wiem czy moje posty są niewidoczne? Dałem wyżej przykład i komentarz, że jak wysyłamy jakiś "string" z BASCOMA to należy po odebraniu odciąć DWA ostatnie bajty którymi są znaki końca linii (CRLF)
Chodzi mi o to że nie mam zielonego pojęcia jak stworzyć sobie zmienne :port_nadawczy , port_docelowy , ip_odbiorcy. Bo kiedy składam z tych zmiennych całą komendę "do kupy" do jakiejś zmiennej string to oczywiście wycina mi cudzysłowy i komenda wygląda tak: AT+CIPSTART=1,UDP,192.168.1.2,874,11012 no i rzecz jasna nie jest rozpoznawana jako poprawna...
Można zwiększyć bufor dla danych wejściowych i funkcjami Charpos , Mid pobierać dane dla silników. Charpos wyszukuje określony znak w łańcuchu i zwraca jego pozycje. Do wyszukiwania słów "silnik" można użyć funkcję InStr . Mały przykład wykorzystujący Charpos, format wprowadzanych danych p100,l99,p43;l999,l1,p4; średnik też musi być na końcu danych....
Może tak zobacz: $regfile = "m8def.dat" $crystal = 8000000 $BAUD = 9600 dim test1 as String dim test2 as String test1 = "1987" Do Input test2 Print "Wprowadzone haslo:" ; test2 If test1 = test2 then Print "Haslo poprawne" Loop End
Mógłbyś trochę rozwinąć ? Niestety nie mogę tego ogarnąć - to już moje drugie podejście, po próbie połączenia UART z PWM, wtedy odpuściłem, bo blokowało mi wyjścia na czas połączenia. Przeglądając przykłady na tym forum wyszło coś takiego: '********************* Konfiguracja UART Config Serialin = Buffered , Size = 40 , Bytematch = All Enable Interrupts...
Koledzy bardzo dziękuję za odp. jednak muszę przyznać, że każdy ma rację. Ja piszę w bascomie ponieważ go lubię i nie piszę programów zaawansowanych. Ja tylko prosiłem o pomoc z com-em. Zobaczę w helpie jak nie dam rady to jeszcze będę prosił o pomoc. Dodano po 1 Panowie jednak coś mi nie działa, proszę o pomoc. Program który jest w uC - nadawanie kodu...
Wiem że podobne tematy krążą po forum, to też od paru tygodni czytam je uważnie i próbuję rozwiązać mój problem ,lecz z marnym skutkiem…:/ Jestem początkujący w programowaniu w BascomAVR, w związku z czym napotykam na duże trudności w realizacji przedstawionego poniżej problemu(jest to kwestia zalki z jednego przedmiotu :D). Problem jest następujący:...
Witam! Dziś walczę z komunikacją rs232. Posiadam dwie Atmegi jedna 32, druga 16 - odbiornik. W nadajniku nadaję string 001100.110011.001100.110011.001100.11001... przez Do Print "001100" Waitms 500 Print "110011" Waitms 500 loop Odbieram to: a) przez komputer - transmisja idealna 001100.110011.001100.110011.001100.11001...
Dostosuj do swoich potrzeb i spróbuj tego: 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 Pomoc2 As String * 1 Dim Dlugosc1 As Byte Dim Dlugosc2 As Byte Dim Numer_tel As Byte Dim Komunikat As String * 80 Dim Numer_gsm As String * 13 Numer_gsm = "48604604604" ' tu wpisz...
Witam Nie za bardzo wychodzi mi wykorzystanie z dwóch portów UART. UART sprzętowy odbiera ramki z modułu GPS ( Tx modułu do Rx AtMega32 ) i to działa. Działa do momentu gdy włączę UART sprzętowy ( tylko Rx na jednym z portów Atmega do Tx portu Com w komputerze - korzystam z przejściówki, ale to chyba nie problem ), wtedy informacje na LCD nie są aktualizowane...
Można wyświetlać temperaturę w podmenu "wybór_Ds" ale trzeba zmienić cały program. Chyba nie jest tak trudno zapisać sobie cztery ID czujników i wiedzieć później który gdzie przypisać. Najlepiej osobno podłączać każdy czujnik i na naklejce na kablu przy czujniki zapisać jego ID. Wiedząc gdzie jakie jest ID czujnika można już mu w podmenu przypisać odpowiednią...
Opis magistrali 1Wire masz w helpie. Poniżej kod na obsługę dallasa DS18B20. Config 1wire = P1.0 'konfiguracja magistrali 1wire Config Lcd = 16 * 1a 'konfiguracja wyswietlacza Deflcdchar 1 , 4 , 10 , 4 , 32 , 32 , 32 , 32 , 32 'znak stopnia Dim T1 As Single Dim T2 As Single Dim B1 As Byte , B2 As Byte , R As Byte Dim Tmp As String * 6 Dim Znak As String...
Do czego ma być rezystor 10k na schemacie? No jak to? Wraz z rezystorem 20k służy do podziału 3.3V do 1.1V Dokładnie taki był mój zamysł. Myślałem, że się uda... Jak widać by nie przekroczyć 1,1V trzeba dać rezystor >130k... Teraz.. nie baw sie w żadne przeliczanie na Volty Napisz program by pokazywał Ci na LCD albo w terminalu co sekundę te odczyty...
Rejestrator dość spory. Większość danych zbiera płytka nadajnika na Atmega328 i tam następuje praktycznie całkowita obróbka - oprócz danych z siedmiu DS18B20, jednego DHT11 oraz MPL115A2, odbieranie czasu z DCF77 i jego aktualizacja w PCF8563 przesyłane są dane o tym czy nie ma awarii czujnika ( zmienna Err ) oraz informacja o histerezie czujników DS18B20...
Pomysł z tym programikiem jest dobry ale lepiej zrobić tak aby wykorzystać przerwanie od uart'u od danych przychodzacych. W obsłudze tego przerwania robimy taki myk że gdy przyjdzie znak "$" to niech sie zeruje licznik (wskaźnik pozycji) i każda nastepna dana z portu niech będzie zapisywana do nastepnej zmiennej. Potem można z tych zmiennych wyciągnąć...
Obecnie taki odbiór rozwiązuję inaczej, ale w Twoim wydaniu coś czuję że to nie odbiór danych przy taktowaniu 16MHz zajmuje dużo czasu a bardziej wyświetlanie tego na LCD. Jeśli by Ci to odpowiadało to możesz: odebrac dane, i zrobić z nich tą tablice stringów po czym ustawić jakąś flagę "Refresh_lcd" Potem w każdym przejściu pętli wyświetlać/odświeżać...
A może odbieraj większy string i sprawdzaj pierwszy znak.
Witam, mam następujący problem: na komputerze PC napisałem program wysyłający przypadkową liczbę co 500ms przez port com do mikrokontrolera. W uKonrolerze ATmega16 program wygląda następująco: $baud = 9600 $crystal = 11059200 Dim Danewej As String * 12 Cls Lcd "reset" Waitms 500 Do Input Danewej Cls Lcd Danewej Waitms 100 Loop Wszystko działa,...
string bascom string atmega bascom string
schemat rozrząd toyota fronius licznik energii taryfy tauron
lampowy wzmacniacz gitarowy identyfikacja elementu
Kompatybilność laserów SF-P101N i EP-C101 w urządzeniach audio Bezpiecznik radia Skoda Octavia 2 2007 - lokalizacja i opis