f
Warning: Cannot modify header information - headers already sent by (output started at /home/anderian/ftp/www_forum/db/mysql4.php:1) in /home/anderian/ftp/www_forum/includes/sessions.php on line 548

Warning: Cannot modify header information - headers already sent by (output started at /home/anderian/ftp/www_forum/db/mysql4.php:1) in /home/anderian/ftp/www_forum/includes/sessions.php on line 549

Warning: Cannot modify header information - headers already sent by (output started at /home/anderian/ftp/www_forum/db/mysql4.php:1) in /home/anderian/ftp/www_forum/includes/page_header.php on line 343
And-Tech :: Zobacz temat - BASCOM- przyklady

Strona korzysta z plików cookie w celu realizacji usług zgodnie z Politykš prywatnoœci.

Możesz okreœlić warunki przechowywania lub dostępu do cookie w Twojej przeglšdarce lub konfiguracji usługi.

And-Tech Strona Główna And-Tech
Forum firmy And-Tech

FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  GrupyGrupy
RejestracjaRejestracja  ZalogujZaloguj  AlbumAlbum  DownloadDownload

Poprzedni temat «» Następny temat
BASCOM- przyklady
Autor Wiadomość
pirzol 

Dołączył: 14 Wrz 2008
Posty: 22
Wysłany: Nie Wrz 28, 2008 9:55 am   BASCOM- przyklady

v.2.94b
aktualizacja sterownika Kolektorów słonecznych z zapisem na SD
dla LCD4x20 linii i Atmega64

http://www.rc-wheels.info...x-solary32.html


Termometr + zegarek +SD

program napisany na podstawie przykładów obslugi i2c oraz przykladow komunikacji z czujnikami ds18b20 znalezionymi w sieci, wymaga optymalizacji i stanowi wylacznie przyklad obslugi I2c i magistrali do obslugi ds18b20 na jednym kablu

opis v.2.50 :
http://www.rc-wheels.info...x-solary32.html

http://www.rc-wheels.info...ora-3-v.2.50.7z

' EvB 4.1
'
' BETA :) v2.49 dla ATMEGA_32
'
' termometr
' - (2 x DS18B20 na wspólnej magistrali 1wire)
' - identyfikacja ID przy starcie
' SD karta
' - zapis do pliku Temper.txt na karcie SD co 15 min (0,15,30,45 min), narazie sam tekst...
' - detekcja braku karty
' - detekcja file systemu (musi byc FAT)
' - zapis reczny SW2
' Wyjscia przekaznikowe
' - sterowanie wyjsciami przekaznikowymi (BETA)
'
' plytka evb4.1
'
' U W A G A (PINY tak jak to jest opisane na plycie 4.1 (v. z błedami)!)
'
' PortA.0 przekaznik 1
' PortA.1 przekaznik 2
' zegarek
' klawisze sterujace (reczne uruchamianie zapisu S2)
' PortB.0 sw1 -/Down
' PortB.1 sw2 +/UP/Save Temp do pliku na SD
' PortB.2 sw4 Menu/Ok
' PortB.3 test obecnosci karty SD w czytniku PortB.3
'
' zegarek
' PortD.4 JP(1) od zegraka zaraz nad DS18b20 i odbiornikiem IR
'
' czytnik SD
' PortB.4 CLK (faktycznie DAT3)
' PortB.5 DI
' PortB,6 DAT0
' PortB,7 DAT3 (faktycznie CLK)
'
' LCD 2x16
' PortC.0 D7
' PortC.1 D6
' PortC.2 D5
' PortC.3 D4
' PortC.4 E
' PortC.5 RS
'
' zegarka i magistrali I2C
' PortC.6 rezystor 10kOhm +5V
' PortC.7 rezystor 10kOhm +5V
'
' karta przekaznikowa
' PortA.0 1.ULN2003(od dołu 0-5)przekaznik_1
' PortA.1 2.ULN2003(od dołu 0-5)przekaznik_2
' do wysterowania przekaznika musimy zasilic plytke z 12V, bez tego swieca tylko LEDY
' UWAGA nie laczyc rownoczesnie 12V i zasilania z USB !
Ostatnio zmieniony przez And-Tech Nie Sty 30, 2011 10:29 pm, w całości zmieniany 8 razy  
 
     
macgyver9

Dołączył: 27 Lut 2009
Posty: 2
Wysłany: Czw Mar 05, 2009 1:57 pm   Re: BASCOM- przyklady

dlaczego nie można pobrać załączników z wsadem? linki do downloadu nie działają.
 
     
pirzol 

Dołączył: 14 Wrz 2008
Posty: 22
Wysłany: Czw Mar 05, 2009 2:04 pm   

dobre pytanie, mysle ze do Admina i do Moderatora...
jak ktos chce moge wyslac emailem...

pzdr
P
 
     
pirzol 

Dołączył: 14 Wrz 2008
Posty: 22
Wysłany: Pią Mar 06, 2009 8:07 pm   

do kasacji
Ostatnio zmieniony przez pirzol Nie Cze 13, 2010 2:13 am, w całości zmieniany 1 raz  
 
     
zeos

Dołączył: 12 Sie 2009
Posty: 11
Wysłany: Czw Sie 13, 2009 11:31 pm   

proste odczytywanie teperatury z 4 czujników
przystosowane do Płytki startowe EvB 4.X





Kod:
$regfile = "m16def.dat"
$crystal = 16000000                                         'ustawienia Q mhz




'Podłączenie pinów LCD do mikroprocesora

' BL = do +5V
' Rs = PortC.2
'  E = PortC.3
'Db4 = PortC.4
'Db5 = PortC.5
'Db6 = PortC.6
'Db7 = PortC.7
' Portd.4  tu podpiety jedyny czujnik ds18b20 jaki mam docelowo 4szt

Config Lcdpin = Pin , Rs = Portc.2 , E = Portc.3 , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7       'standard
Config Lcd = 16 * 2


Config 1wire = Portd.4


Dim I1 As Integer , Ss As String * 6
Dim I2 As Integer
Dim I3 As Integer
Dim I4 As Integer
Dim Dsid1(8) As Byte
Dim Dsid2(8) As Byte
Dim Dsid3(8) As Byte
Dim Dsid4(8) As Byte
Dim B As Byte
Dim W As Byte
Deflcdchar 0 , 32 , 14 , 17 , 14 , 32 , 32 , 32 , 32        '
Cursor Off
Cls
Dsid1(1) = 1wsearchfirst()                                  'musi być wywołana w celu zainicjowania procedury przeszukiwania magistrali. Potem, aby odczytać następne numery ID należy użyć funkcji 1WSEARCHNEXT()

Dsid2(1) = 1wsearchnext()
Dsid3(1) = 1wsearchnext()
Dsid4(1) = 1wsearchnext()


Do
   1wreset
   1wwrite &H55
   1wverify Dsid1(1)
   1wwrite &HBE
   I1 = 1wread(2)
   1wreset
   1wwrite &H55
   1wverify Dsid2(1)
   1wwrite &HBE
   I2 = 1wread(2)
   1wreset
   1wwrite &H55
   1wverify Dsid3(1)
   1wwrite &HBE
   I3 = 1wread(2)
   1wreset
   1wwrite &H55
   1wverify Dsid4(1)
   1wwrite &HBE
   I4 = 1wread(2)
   1wreset
   1wwrite &HCC
   1wwrite &H44
Waitms 700

   I1 = I1 * 10
   I1 = I1 / 16
   'If I1 > 0 Then Cls
   Ss = Str(i1)
   Ss = Format(ss , " 0.0")
   Locate 1 , 1
   Lcd "x" ; Ss ; Chr(0) ; "C"

   I2 = I2 * 10
   I2 = I2 / 16
   'If I2 > 0 Then Cls
   Ss = Str(i2)
   Ss = Format(ss , " 0.0")
   Locate 2 , 1
   Lcd "y" ; Ss ; Chr(0) ; "C"

   I3 = I3 * 10
   I3 = I3 / 16
   'If I3 > 0 Then Cls
   Ss = Str(i3)
   Ss = Format(ss , " 0.0")
   Locate 1 , 9
   Lcd "z " ; Ss ; Chr(0) ; "C"

   I4 = I4 * 10
   I4 = I4 / 16
   'If I4 > 0 Then Cls
   Ss = Str(i4)
   Ss = Format(ss , " 0.0")
   Locate 2 , 9
   Lcd "q " ; Ss ; Chr(0) ; "C"
Loop


odczyt temperatury.zip
Pobierz Plik ściągnięto 1439 raz(y) 16,43 KB

 
     
And-Tech
Site Admin

Dołączył: 22 Lut 2007
Posty: 285
Wysłany: Pią Sie 14, 2009 3:22 pm   

bardzo dziękujemy za zamieszczenie przykładu :)
 
     
morock 

Wiek: 33
Dołączył: 19 Sie 2009
Posty: 71
Skąd: Działdowo
Wysłany: Sro Sie 19, 2009 4:20 pm   

Bardzo proszę o taki program z obsługą przynajmniej 2 czujników ale napisany w c

wszędzie obszukałem i są albo w bascom albo już jako gotowe pliki hex, na przykładowych programach z kodem w c spotkałem tylko programy, jednak obsługiwały one tylko jeden czujnik.
 
 
     
leon1313
Homo Erektus

Dołączył: 04 Sty 2010
Posty: 41
Wysłany: Pon Lut 01, 2010 2:07 am   

Prosty program testując przetwornik ADC.
PortB podłączamy przewodami do diod, Vref do +5V na płytce, PINA.0 do wyjścia któregoś z potencjometrów
LCD według konfiguracji z programu.
Kod:

$regfile = "m32def.dat"
$crystal = 16000000

'konfiguracja wyświetlacza LCD
Config Lcdpin = Pin , Rs = Portc.2 , E = Portc.3 , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7
Config Lcd = 16 * 2
Cursor Off
'konfiguracja portu b - dla wyswietlania diod
Config Portb = Output
Portb = 255


Dim Val0 As Word                                            ' wartosc odczytana
Dim Val0_str As String * 4                                  ' wartosc odczytana- string
Dim Volt As Single                                          ' w voltach
Dim Vol_str As String * 4                                   ' volty w przyjanym formacie
Dim Val1 As Word                                            ' pomocnicza przy aktualizacji lcd
Val1 = 1024                                                 ' aby pierwszy raz wyswietlilo wartosc
Dim Channel As Byte                                         ' kanal (pin)

Config Adc = Single , Prescaler = Auto , Reference = Avcc   'prescaler (7 bit, najlepiej auto) i zrodlo odniesienia

Start Adc

Channel = 0
 Cls
 Lcd "Volt:"
 Lowerline
 Lcd "ADC: "


Do
   Val0 = Getadc(channel)
   Portb = 255
   If Val0 > 50 Then Reset Portb.0
   If Val0 > 150 Then Reset Portb.1
   If Val0 > 300 Then Reset Portb.2
   If Val0 > 450 Then Reset Portb.3
   If Val0 > 600 Then Reset Portb.4
   If Val0 > 750 Then Reset Portb.5
   If Val0 > 900 Then Reset Portb.6
   If Val0 > 1000 Then Reset Portb.7

   Volt = Val0 * 0.0048828
   Vol_str = Fusing(volt , "#.##")
   Val0_str = Str(val0)
   Val0_str = Format(val0_str , "0000")

   If Val0 <> Val1 Then
      Val1 = Val0
      Locate 1 , 7
      Lcd Vol_str
      Locate 2 , 7
      Lcd Val0_str
   End If
Loop
 
     
And-Tech
Site Admin

Dołączył: 22 Lut 2007
Posty: 285
Wysłany: Czw Lut 04, 2010 7:33 pm   

Nowe przykłady dostępne są pod adresem:
http://and-tech.pl/przyklady-bascom
 
     
xtreme69 

Wiek: 32
Dołączył: 04 Gru 2009
Posty: 6
Skąd: Kościerzyna
Wysłany: Sro Lip 28, 2010 10:57 am   

Poniżej zamieszczam prosty program do obsługi LCD 20X4
Cytat:
$regfile = "m32def.dat"
$crystal = 16000000
$lib "lcd4e2.lbx"

Dim ___lcde As Byte

'Rs = PortB.0
'RW = GND
'E = PortB.2
'E2 = PortB.3
'Db4 = PortB.4
'Db5 = PortB.5
'Db6 = PortB.6
'Db7 = PortB.7

Config Lcd = 20 * 2
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.2 , Rs = Portb.0

Const En1 = 0
Const En2 = 1

En Alias ___lcde

'start

En = En1
Cls
En = En2
Cls

En = En1
Locate 1 , 1 : Lcd "Pierwsza linia"
Locate 2 , 1 : Lcd "Druga linia"
En = En2
Locate 1 , 1 : Lcd "Trzecia linia "
Locate 2 , 1 : Lcd "Czwarta linia "

Stop


Jedyne o czym trzeba pamiętać to aby podpiąć LCD pod Port B :!:
 
     
elektrofil 

Wiek: 40
Dołączył: 26 Lis 2010
Posty: 11
Skąd: poznań
Wysłany: Sob Gru 18, 2010 4:48 pm   

Witam.
przedstawiam bardziej czytelny tester pilotów do TV w standardzie RC5
Kod:
'-------------------------------------------------------------------
'  TV RC5 analizator
'  Autor: michau@cnc-work.pl
'-------------------------------------------------------------------
$projecttime = 54
$regfile = "m32def.dat"
$crystal = 16000000
Config Lcdpin = Pin , Rs = Portc.2 , E = Portc.3 , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7
Config Lcd = 16 * 2
Config Rc5 = Pind.2
'the interrupt routine is inserted automatic but we need to make it occur
'so enable the interrupts
Enable Interrupts

'reserve space for variables
Dim Address As Byte , Command As Byte
Dim Text As String * 24
Dim Last As Byte
Last = 0
Address = 0
Command = 0

Cls
Lcd "Waiting for RC5..."

Do
  'now check if a key on the remote is pressed
  'Note that at startup all pins are set for INPUT
  'so we dont set the direction here
  'If the pins is used for other input just unremark the next line
  'Config Pind.2 = Input
  Getrc5(address , Command)

  'we check for the TV address and that is 0
  If Command <> Last And Address = 0 Then
     'clear the toggle bit
     'the toggle bit toggles on each new received command
     'toggle bit is bit 7. Extended RC5 bit is in bit 6
     Last = Command
     Command = Command And &B01111111
     Select Case Command
     Case 0
      Text = "kanal 0"
     Case 1
      Text = "kanal 1"
     Case 2
      Text = "kanal 2"
     Case 3
      Text = "kanal 3"
     Case 4
      Text = "kanal 4"
     Case 5
      Text = "kanal 5"
     Case 6
      Text = "kanal 6"
     Case 7
      Text = "kanal 7"
     Case 8
      Text = "kanal 8"
     Case 9
      Text = "kanal 9"

     Case 10
      Text = "1-/2-/3- -/-- txt+"
     Case 11
      Text = "czest./pr./kanal txt -"
     Case 12
      Text = "standby"
     Case 13
      Text = "mute"
     Case 14
      Text = "normalizacja (PP)"
     Case 15
      Text = "display (i)"
     Case 16
      Text = "volume +"
     Case 17
      Text = "volume -"
     Case 18
      Text = "jasność + (int +)"
     Case 19
      Text = "jasność - (int -)"
     Case 20
      Text = "nasycenie + (sat +)  "
     Case 21
      Text = "nasycenie - (sat -)"
     Case 22
      Text = "bass +"
     Case 23
      Text = "bass -"
     Case 24
      Text = "treble +"
     Case 25
      Text = "treble -"
     Case 26
      Text = "balance R"
     Case 27
      Text = "balance L"
     Case 28
      Text = "kontrast + (ctrst +)"
     Case 29
      Text = "kontrast - (ctrst -)"
     Case 30
      Text = "wyszukiwanie +"
     Case 31
      Text = "zabarwienie/odcień -"
     Case 32
      Text = "program + (txt !)"
     Case 33
      Text = "program - (txt L/F)"
     Case 34
      Text = "SWAP"
     Case 35
      Text = "język 1/2 (S/M/D)"
     Case 36
      Text = "spatial stereo (menu) "
     Case 37
      Text = "stereo/mono"
     Case 38
      Text = "sleep timer"
     Case 39
      Text = "zabarwienie/odcień +"

     Case 40
      Text = "przełączanie w.cz."
     Case 41
      Text = "SET (txt HOLD)"
     Case 42
      Text = "txt time"
     Case 43
      Text = "scan up (txt zoom)"
     Case 44
      Text = "scan down (txt rev)"
     Case 45
      Text = "txt hide"
     Case 46
      Text = "menu (txt mix)"
     Case 47
      Text = "pokazanie zegara"
     Case 48
      Text = "pauza"
     Case 49
      Text = "CLEAR"

     Case 50
      Text = "txt zolty"
     Case 51
      Text = "****************"
     Case 52
      Text = "txt niebieski"
     Case 53
      Text = "txt status"
     Case 54
      Text = "txt zielony"
     Case 55
      Text = "txt czerwony"
     Case 56
      Text = "AV"
     Case 57
      Text = "****************"
     Case 58
      Text = "****************"
     Case 59
      Text = "OK."

     Case 60
      Text = "TXT (subcode)"
     Case 61
      Text = "czuwanie"
     Case 62
      Text = "****************"
     Case 63
      Text = "wybor urzadzenia TV"



     End Select

     Cls
   Lcd Address ; "  " ; Command ; " last:" ; Last
   Lowerline
   Lcd Text

   Waitms 300

  End If

Loop
End
 
 
     
pawel182

Dołączył: 02 Kwi 2010
Posty: 3
Wysłany: Nie Gru 19, 2010 8:19 pm   

zeos napisał/a:
proste odczytywanie teperatury z 4 czujników
przystosowane do Płytki startowe EvB 4.X





Kod:
$regfile = "m16def.dat"
$crystal = 16000000                                         'ustawienia Q mhz




'Podłączenie pinów LCD do mikroprocesora

' BL = do +5V
' Rs = PortC.2
'  E = PortC.3
'Db4 = PortC.4
'Db5 = PortC.5
'Db6 = PortC.6
'Db7 = PortC.7
' Portd.4  tu podpiety jedyny czujnik ds18b20 jaki mam docelowo 4szt

Config Lcdpin = Pin , Rs = Portc.2 , E = Portc.3 , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7       'standard
Config Lcd = 16 * 2


Config 1wire = Portd.4


Dim I1 As Integer , Ss As String * 6
Dim I2 As Integer
Dim I3 As Integer
Dim I4 As Integer
Dim Dsid1(8) As Byte
Dim Dsid2(8) As Byte
Dim Dsid3(8) As Byte
Dim Dsid4(8) As Byte
Dim B As Byte
Dim W As Byte
Deflcdchar 0 , 32 , 14 , 17 , 14 , 32 , 32 , 32 , 32        '
Cursor Off
Cls
Dsid1(1) = 1wsearchfirst()                                  'musi być wywołana w celu zainicjowania procedury przeszukiwania magistrali. Potem, aby odczytać następne numery ID należy użyć funkcji 1WSEARCHNEXT()

Dsid2(1) = 1wsearchnext()
Dsid3(1) = 1wsearchnext()
Dsid4(1) = 1wsearchnext()


Do
   1wreset
   1wwrite &H55
   1wverify Dsid1(1)
   1wwrite &HBE
   I1 = 1wread(2)
   1wreset
   1wwrite &H55
   1wverify Dsid2(1)
   1wwrite &HBE
   I2 = 1wread(2)
   1wreset
   1wwrite &H55
   1wverify Dsid3(1)
   1wwrite &HBE
   I3 = 1wread(2)
   1wreset
   1wwrite &H55
   1wverify Dsid4(1)
   1wwrite &HBE
   I4 = 1wread(2)
   1wreset
   1wwrite &HCC
   1wwrite &H44
Waitms 700

   I1 = I1 * 10
   I1 = I1 / 16
   'If I1 > 0 Then Cls
   Ss = Str(i1)
   Ss = Format(ss , " 0.0")
   Locate 1 , 1
   Lcd "x" ; Ss ; Chr(0) ; "C"

   I2 = I2 * 10
   I2 = I2 / 16
   'If I2 > 0 Then Cls
   Ss = Str(i2)
   Ss = Format(ss , " 0.0")
   Locate 2 , 1
   Lcd "y" ; Ss ; Chr(0) ; "C"

   I3 = I3 * 10
   I3 = I3 / 16
   'If I3 > 0 Then Cls
   Ss = Str(i3)
   Ss = Format(ss , " 0.0")
   Locate 1 , 9
   Lcd "z " ; Ss ; Chr(0) ; "C"

   I4 = I4 * 10
   I4 = I4 / 16
   'If I4 > 0 Then Cls
   Ss = Str(i4)
   Ss = Format(ss , " 0.0")
   Locate 2 , 9
   Lcd "q " ; Ss ; Chr(0) ; "C"
Loop



U mnie ten program nie działa tzn wszędzie jest wyświetlana temperatura tylko z jednego czujnika pomimo że podłączonych jest więcej.
 
     
kawasaki1994ad 

Wiek: 23
Dołączył: 07 Cze 2012
Posty: 6
Wysłany: Pią Lis 09, 2012 7:47 pm   Licznik cyfrowy i termostat

Witam, oto prosty sposób wykorzystania TIMERA1 w celu stworzenia licznika (na wzór rowerowego), kontrolowania prędkości wirnika i nie tylko! :lol:
ATMEGA32 - praktyczne zastosowanie
Jeśli ktoś chciałby kod źródłowy do tego projektu, to pisać :D
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group