Integer to nie jest zmienna tekstowa. Sprawdź w helpie jaki zakres ma ten typ zmiennej.
Dlaczego pokazuje -1 na wyświetlaczu a nie np 255 jak jest dla zmiennej typu Byte. Bo Integer to zmienna ze znakiem, FFFF to właśnie -1. Byte jest zmienną bez znaku (zawsze dodatnią). Dwubajtowa zmienna bez znaku to w Baskomie "Word". Na wyświetlaczu po resecie będzie wówczas 65535. 2. Czy taki zapis eeprom będzie poprawny przy pierwszym sprawdzeniu...
Myślę, że jest to naturalne. Zmienna typu Long zajmuje 4 bajty a Integer tylko 2. Nie da się ciężarówki zaparkować w garażu dla malucha. W helpie jest informacja, że można dokonywać konwersji typów. Oto fragment: Dim I As Integer, S As Single S = 100.1 'przypisujemy liczbę zmiennoprzecinkową I = S 'ta instrukcja zmieni liczbę typu single na Integer...
:) Komenda mod to taka reszta z dzielenia czyli: zmienna = liczba mod 4 zmienna - miejsce gdzie zostanie wpisana reszta z dzielenia liczba - zmienna która jest dzielona przez 4 (w miejsce 4 możesz wstawić inną liczbę lub zmienna) Dodatkowo w Bascomie są dwa rodzaje dzielenia znak / i \ pierwszy (/) używamy do dzielenia z resztą (w przypadku zmiennej...
zapis writeeeprom zmienna , adres odczyt readeeprom zmienna , adres Musisz pamiętać ile bajtów zajmuje zmienna którą zapisujesz i o taką wartość zwiększyć adres przy zapisie / odczycie następnej zmiennej Jeśli zmienne typu Byte , adres zwiększasz o 1 Jeśli zmienne typu Word , adres zwiększasz o 2 Jeśli zmienne typu Integer , adres zwiększasz o 2 Jeśli...
Mozna to zrobic tak : Wszystkie zmienne musza byc tego samego typu czyli integer zmienna początkowa to "liczba" tysiac= liczba/1000' wyswietlanie tysiecy sto = liczba Mod 1000 sto = sto / 100' wyswietlanie setek dziesiec = liczba Mod 100 dziesiec = dziesiec / 10' wyswietlanie dziesiatek jeden = liczba Mod 10 ' wyswietlanie jednosci
Hej! Zobaczcie jak ja to robię, może komuś sie to przyda: 'Powiedzmy ze zmienna Liczba(single) wynosi 22.62555426 Temp = Int(liczba) ' dzieki temu poleceniu odcinam czesc setna czyli ' zmiennej Temp(byte) przypisuje liczbę 22 Liczba = Frac(liczba) ' dzieki temu poleceniu odcinam czesc ' dziesiętną czyli zmiennej Liczba(single) przypisuje ' liczbe 0.62555426...
Przetwonnik zlicza napięcia tylko do 2047, pokazując ujemne napięcie nie ma znaku minus i wartość, tylko np 65320. Czyli przetwornik zwraca wyniki w kodzie U2. Tam nie ma znaku minus. Jest za to przesunięcie poziomu. Najprościej mówiąc, zastosowanie takiej funkcji do konwersji: Napiecie = Zmierz1 * 256 Napiecie = Napiecie + Zmierz2 da Ci złe wyniki....
Proponuje dodać dodatkową zmienną pomocniczą której zadaniem będzie pamiętanie że program zaczął działać nie jestem pewien tego rozwiązania z bascomem miałem doczynienia dość dawno temu ale możesz spróbować tego $regfile = "attiny25.dat" $crystal = 4000000 Config Portb.3 = Output 'przekażnik Config Portb.2 = Input 'włącznik typu microswitch...
Do konwersji łańcucha na zmienną numeryczną wykorzystaj funkcje VAL lub HEXVAL . Mając już adres zmiennej, możesz użyć instrukcje INP do pobrania wartości. [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 80 $swstack = 80 $framesize = 80 Declare Sub Show_byte(byref Adres As String) Declare Sub Show_word(byref Adres As String) Declare...
' 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...
Przetestuj ten. Tak go poopisywałem, że aż mi się nie podoba :D [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 40 $swstack = 16 $framesize = 32 '# wyświetlacz Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 Cls '# timer ' 8000000Hz(8MHz)/256(Prescaler)=...
C znam troche, juz od paru lat staram sie przeskoczyc cos nie daje rady. W c integer jest 1 bajtowy i mam czujnik ktory podaje mi dawne w takiej postaci. Bascom ma zmienna integer ale 2 bajtowa i to ten problem. Teraz chcialem zrobic tak ze dane z czujnika beda zapisywane do zmiennej typu byte i pozniej bedzie to przeliczane czy to jest wartosc ujemna...
Witam, Mam pytanie... Jak zamienić zmienną Integer na Single w Bascom AVR?? Pytam, ponieważ muszę użyć funkcji: X = Fusing(ds1 , "#.##") a zmienna ds1 mam typu integer. Pozdrawiam A.
Pewnie za zmienna integer podstawiasz zmienna word
Nie zmienia, bo masz błąd w innym miejscu. Dokładnie to miałem na myśli-że błąd jest gdzieś indziej. Zastanów się, co oznacza nazwa trybu CTC (?) – w ang. jest to ‘Clear Timer on Compare’ (pol. - wyzeruj zawartość licznika/timera, gdy jego zawartość jest równa wyznaczonej z góry i ustalonej, bądź to wyliczonej jakiejś wartości w zmiennej...
super , dziękii za pomoc , a jeszcze jedno pytanie: to samo , tylko , że z przypisana zmienną np potega "x" i wykonuje "x" * "x" Deklaracja (przed pierwszym użyciem w kodzie): Declare Function Potega( Byval X As Integer) As Integer Definicja (na końcu programu) Function Potega( Byval X As Integer) As Integer Potega = X...
wprowadź w programie zmienną bit która po wejsciu do przerwania uzależni zliczanie od swej wartosci. inaczej: dodaj warunek który musi być spełniony aby zliczyć nacisniecia if guzik nacisniety and zmienna = 0 then incr ilosc nacisniec : zmienna=1: end if dalej w programie: if guzik puszczony and zmienna = 1 then zmienna =0 to proste trzeba tylko pomyslec...
http://obrazki.elektroda.net/7_115627452... Przedstawiam mój zamek szyfrowy. Pomysł zrodził się już klika miesięcy temu kiedy to wpadłem że taki zamek można zrobić na tyrystorach ale układ byłby wtedy zbyt skomplikowany. Wiec od razu jak nauczyłem się obsługi procesorów skończyłem mój projekt. Zamek ten otwiera np. zamek elektromagnetyczny po wpisaniu...
Jeśli chcesz wyświetlić bez miejsc po przecinku to rzutuj zmienną cisn na jakąś zmienna typu Integer lub Word. Zdefiniuj ją na przykład Dim cisn_int as integer i nastepnie napisz cisn_int= cisn I wyświetl bez fusing. Bascom to nie jest prymitywny język. Jest bardzo dobrym narzędziem do pisania nawet skomplikowanych programów.
No niestety BASCOM tak ma. Zdaje mi się że takie obliczenia kiedyś działały (operacje na integer a zwracanie wyniku do Byte). Widocznie od którejś nowej wersji już nie działają. No to będziesz musiał zrobić tak: [syntax=basic4gl]Dim Stopnie As Integer 'Stopnie musi być typu Integer Do Ds_i1 = 305 '************ Obliczenia temperatury Stopnie = Ds_i1...
Witam ogarnąłem już dużo na temat programowania w bascom, tylko mam kolejny problem, mianowicie chciałbym zaprogramować obsługę serwa pilotem nadającym w RC5 lecz gdy połączę obsługę rc5 i serwa mam takie błędy i nic nie działa: Duplicate Label [_SYSTEM_TO_ISR Duplicate Label [_SYSTEM_TO_ISR_EXIT Pojedynczo programy działają ok. Rc5+ servo (nie działa)...
no i wiecie co się okazuje??? że bascom avr, w przeciwieństwie do 8051, nie umie łączyć zmiennych różnych typów u mnie zmienna przecinek byłą typu byte, wystarczyło ją zmienić na integer (czyli taki sam typ jak całości temperatury) i wszystko działa twórcy bascoma zrobili to chyba spejalnie, żeby zająć jak najwięcej miejsca w pamięci RAM :( :| dzięki...
Zmieniłem typ zmiennej z Byte na Integer i działa :D A i mam jeszcze jedno pytanie. Spotkałem się ze zmienną WORD której wartości mieszczą się w granicach 0-65535. Nie jest to aby zmienna LONG ?
Jesli chodzi Ci o rozkladanie na setki, dziesiatki i jednosci to sprobuj tego: Dim Liczba As Integer Dim Pomocnicza As Integer Dim Setki As Byte Dim Dziesiatki As Byte Dim Jednosci As Byte Liczba = 852 Setki = Liczba / 100 Pomocnicza = Setki * 100 Liczba = Liczba - Pomocnicza Dziesiatki = Liczba / 10 Pomocnicza = Dziesiatki * 10 Liczba = Liczba - Pomocnicza...
Cześć, Przedstawiam problem: w poniższym programie, gdy nastąpi 2razy przerwanie INT0, to zmienna limit bedzie wynosić 400. Jeżeli zmienna minuty dojdzie do 400 powinno się zatrzymać. Jednak zmienna Minuty dochodzi tylko do 255 tak jakby była zadeklarowana jako Byte, a nie jako Long. Dlaczego? Zmienna Sekundy jeżeli się przestawi z 2 na mp 400 liczy...
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...
scal sobie te dwa bajty w jedna zmienna. T = Makeint(mbt , Sbt) T = T * 10 T = T / 16 Oczywiscie zmienna T jest typu integer W tym momencie masz liczbe 3 cyfrowa z ulamkiem ale bez kropki. Czyli 24,5 stC jest zapisane jako 245 Wystarczy odpowiednio powycinac cyferki do multipleksu wlaczyc kropke na wysiwetlaczach i gotowe.
Coś w tym stylu: zmienna i - integer zmienna lampy - tablica bool ze stanem lamp for i od 1 do 8: if lampy[i] == true: wyświetl "lampa nr i włączona" czekaj 2s Jeśli masz oczekiwanie zrobione na przerwaniach, to trzeba by coś takiego: przerwanie co 2s: do: i = i+1 while (lampy[i] != true) and (i<=8)...
Analiza cudzego programu to koszmar :) Kilka uwag: - zmienne "leweprzod" i pozostałe daj typu WORD, ponieważ ADC zwraca wartość 0-1023, więc po co tam pakować Integer - zmienna A spokojnie jako BYTE - spróbuj użyć aliasów zamiast "reset portb.0" dajesz "reset lewyprzod", możesz wówczas zrezygnować ze zmiennych bitowych np. LP, bo to sobie odczytasz...
Witam Wszystkich!! Mam nietypowy problem.Oto listing: Dim W As Integer Dim Channel As Byte Config Adc = Single , Prescaler = Auto , Reference = Internal Declare Sub Volt Do Channel = 2 Start Adc W = Getadc(channel) Waitms 1 Stop Adc Cls Lcd "Temp=" ; W ; " C" Wait 1 Loop Gdy za wartosc channel wstawiam cyfre(2 np.kanal 2) to wszystko dziala ok. A jak...
Witam. czy ktoś może mi powiedzieć jak zrobić tablicę zapisywaną w pamięci programu pozwalającą na ładowanie więcej niż 256 bajtów. Chodzi mi o tablicę tego typu: B = Lookup(adres , dane) Dane: Data 0,1,2,3 .... potrzebuję taką tablice dość sporej długości ( kilka kilobajtów) dopóki zmienna adres zadeklarowana jest jako byte wszystko działa jak tylko...
Może być tak: $regfile = "m32def.dat" $crystal = 8000000 Config Portc.0 = Output Config Portc.1 = Output Set Portd.5 Dim X As Integer Dim Y As Integer Dim Flaga_1 As Bit Declare Sub Program_1 Y = 100 '---------------------------------------... Do If Pind.5 = 0 Then Waitms 100 If Flaga_1 = 1 Then If X =...
U mnie poszło coś takiego: $regfile "m16def.dat" Config Lcd = 16 * 2 $crystal = 1000000 $baud = 9600 Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5 , E = Portb.1 , Rs = Portb.0 Config Serialin = Buffered , Size = 12 Dim X As Integer , Y As Integer Config Pind.1 = Output Enable Interrupts ' Musisz włączyć...
No więc już pisze: 1) chcąc ułatwić pisanie wstawek jest w bascomie coś takiego: zamiast pisać adres zmiennej można napisać jej nazwe w nawiasie klamrowym. wszystko ok ułatwia to sprawe. Dim var As Bit SETB {var} Jest jedno ALE. spróbuj zadeklarować inną zmianną niż BIT lub BYTE. Przy odwołaniu do niej przez nawias kompilator nie wyświetki błędu tylko...
Nie bardzo wiem co chcesz osiągnąć, jeśli jest tam przecinek (25,5) to jest zmienna tekstowa! Czyli jest to zsumowanie 2 zmiennych 25 i 5 (po ich zamianie na tekst) i dodanie w środku przecinka. Kod wygląda tak: Dim A As Integer Dim C As Integer Dim Z As String * 5 A = 25 C = 5 Z = Str(a) + "," + Str(c) Print Z End Ale dalej nie rozumiem po co Ci to...
Mam problem. Wydaje mi się że PRAWIE wiem o co chodzi, ale PRAWIE robi wielką różnicę:) Kompiluję Program i wyskakuje mi błąd OUT OFF INTERNAL MEMORY jeśli dobrze myślę to oznacza to poza zakresem wewnętrznej pamięci RAM. I w tym sęk. Jeśli dobrze kombinuję to ram powinien być zajmowany tylko przez zmienne??? A jeśli tak, to dla czego przy ilości zmiennych...
Witam. Proc: Atmega8 IDE: Bascom Piszę dość spory kawałek kodu, a zatrzymałem się na prostej funkcji. Jej zadanie mam być konwersja liczby z jednego zakresu na inny (np. 0-1023 na 0-255). Napisałem taki kawałek kodu: Function Mapuj(byval Z As Byte , Byval In_min As Integer , Byval In_max As Integer , Byval Out_min As Integer , Byval Out_max As Integer)...
Pozdrawiam wszystkich .Chciałbym napisać ..mam 18 lat wpadłam pomóżcie...A wpadłem w programowanie przy pomocy Bascoma. Przepraszam że podpinam się pod temat ale może mój problem jest błahy szkoda zaśmiecać . Pisze sobie programik do obsługi kolektora między innymi korzystając z czujników DS a że nie jestem w tym biegły co jakiś czas kompiluje i sprawdzam...
Program działa, chociaż wydaje mi się, że temperatura jest ciut zawyżona, no ale może i faktycznie taka jest. Mam jeszcze inny problem, a właściwie póki co za małą wiedze w temacie, żeby wiedzieć jak ten temat ugryź, a mianowicie: Mam tak zdefiniowane zmienne: ( or ) missing [IF(CHR(S2(1)) = 4 THEN] Assigment error...
Witajcie, mam problem z kodem poniżej. Chodzi o ten element: [syntax=basic4gl]Do B = A * 256 B = B + Timer2 B = B / 15625[/syntax] W takim przypadku kompilator wywala mi błąd w wierszu z Timer2 - niezadeklarowana zmienna TIMER2. To nie jest zmienna!! A gdy zmieniam na Timer1 - wszystko jest OK. Ale dla mnie ... to całkowicie bez sensu. Błędy w kompilatorze?...
Witam ponownie Zrobiłem to przez Timer0. Jednak problem z aktualizacją wyświetlania dalej występuje. Jeszcze drugi problem to start, przez okres zdefiniowany zmienną Licznik ( teraz równą 300 ) nic się nie wyświetla - dopiero po czasie = 300. Próbowałem również z Enable/Disable Interrupts na czas pomiaru, ale nie było żadnego efektu. Mam takie pytanie...
Witam, Proponuję spróbować tego, to kawałek kodu z mojego pliku pomocy w obsłudze termometru DS18B20: 'Odczyt temperatury z dokladnością do dziesiątych części $regfile = "89s8252.dat" $crystal = 12000000 Dim Odczyt(2) As Byte 'deklaracja dwóch zmiennych typu byte do których będą zapisywane dane z termometru Dim T As Integer , Przecinek...
Witam,mam następujący problem.Potrzebuje obsłużyć 2 enkodery instrukcja encoder program narazie wygląda tak : $regfile = "m8def.dat" $crystal = 8000000 Config Timer0 = Timer , Prescale = 256 Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portb.5 , Rs = Portb.4 Config Lcd = 16 * 4 Config Pind.0 = Input...
Panowie, cały problem tkwi w konwersji zmiennych. Pewnie nikt nie wie co się stanie jak BASCOM zrzutuje integer (16) i to pewnie ze znakiem (signed) na bajt albo lepiej char (bajt ze znakiem). Trzeba się dowiedzieć jak on to robi albo po prostu zacząć pisać w poważnym języku na poważny kompilator (bez obrazy oczywiście) :) Pozdrawiam (M.) Nie wiedzą...
Witam, przepraszam że dopiero teraz odpisuje ale dopiero teraz znalazłem troche czasu na wznowienie projektu. Dziękuje za pomoc. Wcześniej miałem zrobione tak: Select Case Text Case 0 : Pion = Lookup(linia_zmian , Dig_0 ) ...itd... Case 104 : Pion = Lookup(linia_zmian , Big_pz2 ) End Select A tablice znaków wyglądały tak: Dig_0:...
Witam Napisałem program który ma po naciśnięciu przycisku dodać lub odjąć 50 do zmiennej a następnie wyświetlić to na LCD Problem jest taki ze po wgraniu programu bez naciskania na wyświetlaczu zmienna cały czas przeskakuje co 50 na LCD a jak nacisnę 2 przyciski naraz to się zatrzymuje jaki jest tego powód ? [syntax=basic4gl][/syntax] $regfile = "m8adef.DAT"...
Witam Napisalem sobie program w Bascomie ktory liczy czas stanu niskiego na pinie INT0. Powiedzmy ze wszystko dziala wporzadku ale zastanawia mnie jedna rzecz. Ponizej przedstawiam kod programu. Atmege48 idzie na 8 MHz, czyli jeden takt zegara=125ns ?? Czas licze poprzez Timer1(16 bitowy), W przerwaniu od przepełnienia licznika Timer1 napisalem procedurke...
Przepraszam fakt nie napisałem w jakim języku :). Bascom kod: Dim zmienna1 as word zmienna1 = 23456 Sub zap_eeprom ........... Locate 2 , 1 : Lcd "Wartość: " ; zmienna1 Wait 2 end sub Sub od_eeprom ......... Locate 2 , 1 : Lcd "Wartość: " ; zmienna1 Wait 2 End Sub Jak zapisać zmienną zmienna1 do pamięci eeprom. Znalazłem coś takiego ale nie wiem jak...
Myślę że Ci którzy piszą swoje programy bo są dociekliwi i potrafią rozwiązywać problemy nie piszą postów na Elektrodzie. Tutaj jak pokażesz ranę to Ci ją jeszcze posolą Ahahahahaha. Posty z prostymi problemami najczęściej piszą osoby które chcą osiągnąć jakąś funkcjonalność a nie jest ich celem życiowym zostanie programistą. Kiedy wiec akurat mam czas...
Witam Do Atmega1284p z szybkością 8 MHz mam podpięte złącze kart SD. Oprócz zapisu mam tam czujniki DS, BME280, DHT22. Do tej pory zapisywałem wszystko w jednym pliku, ale chciałbym to rozdzielić. Dołożyłem zapis do drugiego pliku - działa [syntax=vbnet] '*********************** Obs-uga karty SD Sub Write_to_sd Sd_year = "20" + Str(rok) ' wartosc zmiennej...
Witam kolegów. Potrzebuję sterownika pompki do C.O. Znalazłem program napisany w BASCOM i przerobiłem go nieco do swoich potrzeb. Działa wszystko prócz HISTEREZY. Przy powolnym narastaniu temperatury, która skacze +/- pompka włącza się i wyłącza, czyli histereza nie działa. Histerezę zrobiłem wg. porad z forum. Czy może ktoś pomóc? Oto kod: [syntax=vbnet]$regfile...
Witam Trochę opóźniona odpowiedź bo życie rodzinne się o mnie upomniało :) Dziękuje bardzo za fragment kodu który w tej chwili próbuje ogarnąć mam tylko takie wątpliwości Co to jest za zmienna nowy_klik ?? skoro ma przypisaną literę (nowy_klik=A) to według książki powinienem zadeklarować DIM nowy_klik As STRING to samo tyczy się poprzedni_klik Rozumiem...
Na razie nie mam jeszcze własnego programu zacząłem od prób na twoim programie. Interesowała mnie szybkość odczytu z karty, ten sam kod kompiluje pod M8 i M32. W programie zapisuje jeden sektor i potem odczytuję 365 sektorów. Zwiększyłem hwstack bez zmian Nie próbowałem jeszcze zejść do 1MHz (nie zdążyłem kupić), ale na płytce od Atmega8 z tym samym...
Mam maly problem ze zliczaniem czasu stanu niskiego na pinie INT0. Napisalem programik ale nie chce on liczyc czasu. A zmienna Ilecykli czasem zawiera wartosci ujemne, i ogolnie pokazuje jakies nieprawdziwe wartosci. bede wdzieczny za pomoc $regfile = "m48def.dat" $crystal = 8000000 $baud = 4800 Config Timer1 = Timer , Prescale = 1 On Timer1...
Witam. Zrobiłem termometr taki jak w temacie http://www.elektroda.pl/rtvforum/topic33... tyle że zamiast AT90s2313 dałem ATmege8, taktuje go wewnnetrznym oscylatorem 4MHz ponieważ portb jest zajęty dla wyświetlacza. Po uruchomieniu na wyświetlaczu pojawiają się "niepełne" cyfry coś podobne do 2 lub innej cyfry. Programu nie zmieniałem...
Witam. Mam problem z następującym kodem /fragment: Do Call Wezczas If Menu = 0 Then 'glowny program Call Wyswczas Waitms 300 If Przeszlo = 0 Then 1wreset 'reset 1wwrite &HCC 'jedna kostka, więc wykorzystujemy rozkaz SKIP ROM 1wwrite &H44 End If Incr Przeszlo If Przeszlo > 3 Then 1wreset 'reset 1wwrite &HCC 'rozkaz adresowy SKIP ROM 1wwrite...
Witam Mam zegarek/budzik z wyświetlaczem LED ( dwukolorowy ). Zegarek generalnie działa. Ale mam problem z sterowaniem jasnością. Wiadomo, że robi się to tak, że jasność zależy od częstotliwości odświeżania. Tutaj o jasności wyświetlania ma decydować zmienna jasnosc. . jasnosc : [syntax=vbnet] '************ Timer0 1000 = 1 sekunda, 10000 = 10 sekund,...
Tworzę sterownik który będzie operował na 4szt DS18b20 Program jest pisany w bascom Czy w bascomie można zadeklarować tablicę dwu wymiarową Tablica (4)(8) Dla czego przy odczycie danych muszę ponownie resetować magistralę i podawać numer seryjny układu. Podobno po wysłaniu za pierwszym razem numeru układu inne milczą a wskazany nadsłuchuję 1wreset 1wwrite...
Witam, Mam mały problem z komunikacją między uC. Ale od początku. Schemat układu pochodzi z EP http://obrazki.elektroda.net/52_12696388... http://obrazki.elektroda.net/91_12696388... Samą komunikację udało mi się zestawić i działa bardzo dobrze (załączony kod poniżej). Master non stop odpytuje slave i jest git. I teraz mój problem,...
Witam serdecznie. Szukałem już chyba wszędzie, próbowałem kilkunastu innych programów i problem ciągle zostaje nie rozwiązany. Otóż piszę program do sterownika pieca. Posiada on 3 czujniki DS18B20, 3 przekaźniki i 1 triak do sterowania pompki kolektorów. Wszystko działa bez zarzutu. Problem pojawia się dopiero po włączeniu przerwania od INT0 (regulacja...
Witam panowie od razu podkreślę że jeszcze uczę się bascoma więc proszę nie krzyczeć i nie usuwać tego postu do kosza Siedzę już nad tym 3 dzień i efekt mojej pracy nie najgorszy ale mam parę pytań po pewnych rzeczy nie rozumiem i nie mogę rozwiązać. Więc tak założeniem był pomiar temperatury przez ds18b20 wyświetlenie je na LCD i 4 wyświetlaczach 7...
teraz kolega rakuś widzi że nie tylko ja miałem problemy ze zrozumieniem problemu No moi drodzy - analiza wymaga czytania! Nawet Lenin mawaił: CZYTAĆ! czyli napiszmy to jasno, ukontroler dostaje z PC wektor o jaki musi przesunąć frez, czyli x, y, z, no i jakaś informacja o czasie jaki na to mamy, lub prędkosci freza, bo inaczej to bez sensu. No wreszcie...
Czy Kolega będzie może wiedział co jest nie tak od strony programistycznej ? Tzn. jeśli wyświetlam stałe wartości to jest ok, podobnie jak wyświetlam w pętli For... Next od 1 do 59. Dodałem jeszcze obsługę LCD, żeby widzieć, co się dzieje z czasem. Ale jak podepnę do tego PCF8563 i odczytuje czas z niego, a dopiero później wysyłam do SAA1064 to jest...
Witam, jestem początkującym programistą w bascom, chciałem przetestować wykorzystanie układu PCF 8583, napotkałem jednak na problem z którym nie mogę sobie poradzić w żaden sposób, mianowicie miesiące wyświetlają się jak chcą, tzn są to liczby z kosmosu wzięte, np 49, przeskakują razem z dniami itp. pewnie to mój błąd w kodzie, ale nie mam pojęcia gdzie,...
Witam posiadam dwa rodzaje wsadu do procka jeden to plik hex drugi to plik bas rozumiem że ten drugi plik udostępnia kod źródłowy i można go w dowolny sposób edytować i tam dopisać zmiany?? Dobrze to rozumiem ?? Tam w kodzie programu praktycznie nic nie będziesz musiał zmieniać w tym BAS. Jedyne co to nagłówek nazwy mikrokontrolera i puścić kompilację...
Mam oto taki problemik. Programik jest banalnie prosty i działa mniej więcej tak: Gdy zmienna (Wart) nie osiągnie 30 zostaje załączone wyjście Portc.0 . Po osiągnięciu tej wartości wyjście zostaje wyłączone i załącza się kolejne czyli Portc.1 . Podprogram kończy się na wyłączeniu wyjścia Portc.3 . To wszystko jest proste. Problemem dla mnie jest natomiast...
No napisałem program któy zajmuje 97% z 2Kb dostepnego flash'a w attiny2313 :) powinien działać! :) Byłbym wdzięczny gdyby ktoś na to spojżał. ' CODE LOCK ' Ports confuguration, konfiguracja portów ' B ports, porty B Config Portb.0 = Input ' 1 Config Portb.1 = Input ' 2 Config Portb.2 = Input ' 3 Config Portb.3 = Input ' 4 Config Portb.4 = Input ' 5...
Temat ostatecznie zmieniłem. Program działa, jeśli wywalę / "zaremuję" obsługę Wyświetlania baterii-nie napięcia. To jest dziwne, bo adc i reszta jest ok. Ale jek tylko dołożę obsługę wyświetlania ikonek IF-ELSE to procesor nie budzi się. Dodam że automatyczne wyłączanie zrealizowałem na transoptorze, bo inaczej miałem problemy z wybudzaniem. Program:...
Witam Mam program budzika, który jako dodatkową atrakcję miał mieć możliwość mówienie czasu na żądanie i odtwarzanie oprócz buzzera utworu jako alarmu. Atmega steruje przez jedno SPI programowe układem MAX7219, a przez konwerter poziomów i drugie SPI programowe odtwarzaczem WTV020SD. O ile sam WVT020SD + PCF8563 ( wyjście CLK do INT1 ) działają dobrze,...
Witam Mam płytkę Loggera GPS + SD + PCF8563. Jeśli chodzi o GPS i zapis na SD wszytko jest OK. Problemem jest ( i to pierwszy raz się z czymś takim stykam ) odczyt danych z z układu PCF8563. Otóż dla pewnych wartości sekund, odczytana wartość czasu - godziny jest większa o 40 ( czterdzieści ). Czyli jeśli czas jest 22:40:02 to jest wyświetlany poprawnie,...
Witam. Jako początkujący, a już trochę wiekowy (46)proszę o wyrozumiałość. Napisałem w Bascomie takie coś , zrobiłem układ i nic. Nie działa. W którym miejscu jest błąd ? Na schemacie nie ma tranzystorów PNP w anodach, rezystorów w segmentach - celowo , bo to oczywiste. No więc tak na początek staraj się opanowac ten projekt "segmentami"; Najpierw,...
Witam Z wycinków kilku programów chciałem zrobić jeden duży barkuje kilku rzeczy i zwiazku z tez pytania W jaki sposób mogę zwiększyć ilość wejść i wyjść żeby zmieścić wszystko ? ( patrz 1 PINY ) brakuje ustawiania podlewania względem kalendarza zielonego pojęcia nie mam jak z pcf mogłbym ustawić godzinę i czas podlewania np 18:00]przez 1 min ? brakuje...
Bascom - wersja 1.11.95 Kod, no jest tego sporo: - zegar PCF8563 - Zapis na SD - dwa czujniki DHT11 - odczyt z PCF8574AP ( klawiatura ) - RC5 - ma być DS18B20 - ma być DCF77, ale nie doszedłem do tego momentu ( tzn testowałem na innym procesorze i działało ) Działa - zegar PCF8563 - dwa czujniki DHT11 - odczyt z PCF8574AP w przerwaniu ( klawiatura )...
No i właśnie tak jak w temacie napisałem sobie program taki w którym wpisuje się hasło i drzwi sie otwierają i można też zmienić hasło. Program działał bez zarzutu ale postanowiłem zrobić tak żeby zmienna z hasłem była przechowywana w eeprom no i dodałem kilka linijek kodu które miału takie właśnie zadanie. I właśnie według mnie wszystko jest dobrze...
Udało mi się coś zrobić i nawet działa, ale: -jak uruchamiam układ powinno pisać w dolnej linii Ustaw godzine , a jest jak na fotce niżej, -ustawianie godziny - jak trzymam przycisk w pilocie cały czas wysyła sygnał, a układ odbiera kod raz na 3 sek - wcześniej było 250ms (tak jak jest zdefiniowane w programie). http://obrazki.elektroda.net/19_12181272...
witam W bascom zrobiłem tak Locate 1 , 1 Wart_nap = Int(t ) Lcd "boj:" ; Wart_nap ' napis w cudzysłowie możesz zmienić na dowolny Print Chr(2) ; Wart_nap ; Chr(3); Zmienna = 125 Print Waitms 3 Locate 1 , 9 Wart_nap1 = Int(t1 ) Lcd "piec:" ; Wart_nap1 ' napis w cudzysłowie możesz zmienić na...
Witam Mam taki programik troszke posklejany ale wyskakuje błąd co robie nie tak . label not found [_ENDIFO ] $regfile = "m8def.dat" 'Atmega8 $crystal = 8000000 'Kwarc 8MHz Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.1 , Db6 = Portc.0 , Db7 = Portb.5 , E = Portc.3 , Rs = Portc.4 '*************************************.....
Mam sobie niżej pokazany programik w bascomie ale niestety nie wiem jak dopisać obsługę pilota :| Programik jest na 89c4051 ;) $large Config Lcd = 16 * 2 Config Timer1 = Timer , Gate = Internal , Mode = 1 Config Sda = P3.1 Config Scl = P3.0 Dim Licz As Byte Dim I As Byte Dim Nast(5) As Byte Dim St As String * 7 Dim W_reg As Integer Dim Wielk1...
Ja bym zrobił to tak mam zmienną "a" typu single np potem dziele ją przez 10 a = a / 10 potem przepisuje ją do zmiennej typu np integer np "b" , ktora to automatycznie odcina, zostawia mi tylko liczby całkowite a potem znów mogę ją przepisać do a lub innej a = b zienną typu single można by potraktować tylko jako pomocniczą do obliczeń ale są zapewne...
Stwórz tablicę za pomocą: Dim Zmienna(5) As Byte 'lub Word, Integer, Long, Single, Double... Przed zapisem aktualnej wartości do Zmienna(1), przesuń wartości z 1, 2, 3, 4 o jeden indeks (na 2, 3, 4, 5). Pamiętaj aby zrobić to tak, by nie "zamazać" wartości przy przesuwaniu. Potem zapisujesz aktualną wartość do Zmienna(1) i masz komplet, który...
Nie znam BASCOM'a Ilu bitowa jest zmienna typu integer? Czy przypadkiem nie 16 (bo tyle ma zwyczajowo przy implementacji na uC 8 bitowe, a takim jest włąsnie '51)? To jeżeli ma 16 bitów to jak chcesz do niej wpisać 131071? Jak chcesz mieć program zajmujący mało miejsca w pamięci to go napisz w asemblerze, w ostateczności w C.
Usuń znaczek hash i nazwę zmiennej umieść w nawiasach klamrowych. Będzie odwołanie do pamięci, a nie ładowanie stałej. Oczywiście pisze o tym w pomocy, ale szukać się koledze nie chce. :bad-words: Można uzyskać dostęp do zmiennej umieszczając jej nazwę w nawiasach klamrowych { }. By mieć dostęp do bajtu MSB zmiennych Integer/Word, należy użyć formy:...
$crystal = 14745600 Czy oprócz podłączenia takiego kwarcu ustawiłeś odpowiednie fuse bity? Następna rzecz to nie musisz robić resetu 1wire. Największy błąd polega na tym że nie czytałeś helpa bo gdybyś to zrobił to dowiedziałbyś się że zmienna do której zapisujesz ilość urządzeń koniecznie musi być typu WORD lub INTEGER. Na koniec radzę ci skorzystać...
Proponuję wprowadzić opóźnienie w pętli.
Witam ! Przesylam uartem sobie zmienna single(4bajty) a w drugim procku ją odbieram, dostaje 4 bajty ktore nie mam pojecia jak wbic do zmiennej single i jak to zrobic najszybciej. Probowalem uzywac SHIFT Zmienna, left ale dziala to tak jak powinno jedynie na zmiennych: byte, integer, word, long. bede wdzieczny za pomoc. Pozdrawiam !
Jest to kod z Pana Wiązani być może nieudolnie przerobiony. Oryginał ma tak: Dim licz_8ms As Byte Incr Licz_8ms If Licz_8ms = 125 Then ............. I to działa, czyli ja nie mogę używać liczby stałoprzecinkowej . No dokładnie. To działa tylko dla Byte (i podobnych). Chociaż typ danych Single mówi, iz może przyjmować wartości stało i zmiennoprzcinkowe....
..i jak zadeklarować zmienną "Ile_wpisow", jezeli zmienna ta może osiągnąć większą wartość niż 255 ?? Integer ?
inny pomysł A as integer (albo LONG ) for A = 1 to ....... ( dowolna wartość z zakresu integer / long ) wait 1 next pętla for ... next może być zawarta w oddzielnej procedurze
Kod wydaje się sprawować prawidłowo. Przecinek jest względny. Operacje na zmiennych z przecinkiem są męczące dla mikrokontrolera. Jesli nie jest to konieczne to należy ich unikać. Zauważ że sam DS nie wysyła Single tylko Integer. Każda zmienna z jednym miejscem po przecinku pomnożona przez dziesięć da liczbę całkowitą. Tutaj przecinek jest "wirtualny"...
Witam Mam następujący problem: używając polecenia $eeprom lub $eepromhex tworzę pliki z wartościami które chcę wgrać do eeprom problem jest w tym, że podczas kompilacji w tych plikach nie są zapisywane poprawnie wartości np 500 (zmienne integer). Po przejrzeniu skompilowanych plików widać, że zapisywany jest tylko młodszy bajt. Natomiast w samym programie...
Witam ponownie. W bascom-owskim helpie jest wzmianka iż zmienna (w Twoim przypadku Il) była typu INTEGER lub WORD. pozdrawiam.
zdefiniuj zmienna jako integer lub long - w tym momencie nie pamietam bo popilem:)
Można użyć zmiennej jako adres, ale trzeba ją podstawić tam gdzie adres. A Ty podstawiasz tam gdzie dana. To po pierwsze. Po drugie zmienna adresu ma być typu Byte/Word/Integer a nie String.
Chodzi o to ze do zmiennej typu integer nie zapiszesz liczby zmiennoprzecinkowej. Co chcesz pozniej z ta zmienna robic?
próbowałem tak: Właściwie to tez powinno działać bezproblemowo. Jeśli x większe od 500 wtedy sprawdza czy nie przekracza 5000. Jeśli tak to wychodzi z warunku i tyle... Może coś masz zamieszane z ta zmienna.... Nie może ona być typu Word lub Integer?
juz czesciowo wiem mam problem ze zrozumieniem tego: T = makeint ( Odczyt(1) , Odczyt(2) ) to chyba zamiana tych zmiennych na zmienna typu integer, nie wiem i to: T = abs(t) tego nie rozumie a zmienne odzczyt1 i odzczyt2 chyba moga byc typu byte
Może spróbuj przesunąć przecinek: zmienna x 10 lub 100 Wykonać obliczenia np na byte (jeśli wynik mniejszy od 255) lub na word/integer Potem z powrotem przesuń przecinek. Pozdrawiam.
' Funkcja musi być zadeklarowana przed jej pierwszym użyciem ' ponieważ kompilator musi wiedzieć jaki jest rozmiar danych ' przesyłanych do funkcji i jaki jest jej typ wyniku ' Funkcja musi mieć zdefiniowany typ wyniku, tu Integer Declare Function Test(byval Liczba As Integer , Tekst As String) As Integer ' określenie byval przed nazwą oznacza,...
Dim zmienna2 As Eram Integer At 10 Dim zmienna3 As Eram Integer At 20 Dim zmienna4 As Eram Integer At 30 Dim zmienna5 As Eram string * 10 At 40 dim zmienna as integer do gosub zapis gosub odczyt loop zapis: zmienna2 = zmienna return odczyt: zmienna=zmienna2 return zapis_text: zmienna5= " czesc " return i analogicznie odwrotnie......... na początek wystarczy,...
zmienna integer integer bascom ujemne zmienna bascom
oporność głośnik zwalnia zasoby reset bosch pralki
rzutowanie prostokątne pioneer instrukcja obsługi polski
Parametry techniczne piły spalinowej Oleo-Mac 937 Aktualizacja oprogramowania LG 42LB5500 przez USB