Fórum témák

» Több friss téma
Fórum » Bascom-AVR
 
Témaindító: puli122, idő: Ápr 11, 2010
Lapozás: OK   12 / 18
(#) kovacssokadik válasza gerry hozzászólására (») Jan 23, 2016 /
 
Én nem vitatom, hogy nálad működik.
Éppen ezért akartam megtudni, hogy nálam miért nem?
(#) gerry válasza kovacssokadik hozzászólására (») Jan 23, 2016 /
 
Nem tudom. Ha a kód benne van és a fuse bitek beállítása is jó. akkor mennie kellene. a Reset láb fel van húzva 10kohm ellenállással? A 4Mhz kvarc kondikkal a 4-es 5-ös lábon. A ledet nem fordított polaritással kötötted be? Tápegység milyen? a bekötést ellenőrizd. De annak jónak kell lennie ha a felprogramozás megy.
(#) kovacssokadik válasza gerry hozzászólására (») Jan 23, 2016 /
 
Amiket leírtál, már többször átnéztem.
A ledet már többször megfordítottam. Tápegységről világít is.
Éppen ezért érthetetlen számomra. Biztosan én cseszek el valamit, csak nem tudom, hogy mit.
Köszi a segítséget.
(#) GPeti1977 válasza kovacssokadik hozzászólására (») Jan 23, 2016 /
 
Ha SPI on keresztül tudod programozni akkor az oszcillátor is megy.
Írd már át úgy hogy
config portd.0 = output
illetve
set portd.0
reset portd.0
és erre a lábra tedd a led-et.
Illetve a program végére kell egy
end.
A hozzászólás módosítva: Jan 23, 2016
(#) pont hozzászólása Jún 30, 2016 /
 
Sziasztok! Van olyan függvény ami visszaadja egy pl. nyolcjegyű decimális szám megfelelő helyi értékén lévő számot? Max7219 hez kellene.
(#) gerry válasza pont hozzászólására (») Júl 1, 2016 / 1
 
Üdv! A "MID" függvény tud ilyet, de csak ha előtte stringé alakítod.
(#) wbt hozzászólása Júl 1, 2016 / 1
 
Előtte bővítsd ki, akkor tudsz nullakioltást is csinálni, ha kell, pl:

Szam=12345678
Temp_string1=STR(Szam) 'Konvertálás string-é
Temp_string1="0000000"+Temp_string1 '00000..+a szám (vagy spc-k a 0 helyett)
Temp_string1=Right(Temp_string1,8) 'értékes jobb oldal 8 karakter

Temp_string2=Mid(Temp_string1,3,1) 'Pl. 3. szám kiszedése

(A Temp_string1-nek 2x akkorának kell lennie, mint a szám max hossza, a kibővítéshez, ha kell, így nem kell foglalkoznod a keletkezett string hosszával, nem tudod túlpozícionálni pl.)
(#) pont hozzászólása Júl 1, 2016 /
 
Köszönöm , mindkettőtöknek.
(#) gerry hozzászólása Júl 30, 2016 /
 
Tiszteletem!
Ha portról bejövő adattal szeretném feltölteni egy másik port adatirány regiszterét, akkor azt a következő programsorral tehetem meg.
  1. Config Portd = input                 'Bejövő adatport'
  2. .....
  3. DDRA = PIND

Itt a DDRA felveszi a portd-n megjelenő adatnak megfelelő adatirányokat.
Ha kiolvasni szeretném a PortA adatirány regiszterét és visszaküldeni a PortD-re, akkor az alábbi kóddal megtehetem?
  1. Config Portd = Output             'Kimenő adatport'
  2. .....
  3. Portd = DDRA

Kérdésem, hogy az adatirány regisztert mindig olvashatom figyelmen kívül hagyva azt, hogy éppen kimenet vagy bemenet éppen?
Köszönöm!
A hozzászólás módosítva: Júl 30, 2016
(#) pont hozzászólása Aug 22, 2016 /
 
Sziasztok! Egy max6675-ös K-tip hőelem modulból származó hőmérséklet értéket szeretném mcp 41010-essel 0-5vig kijeleztetni. A problémám az, hogy mindegyik SPI-t használ, és ugye a program elején konfiguráljuk, hogy melyik lábakat használjuk erre. Tulajdonképpen elég lenne csak az engedélyező lábat váltogatni. Hogyan is kéne ezt programban megoldani, hogy mégse kelljen két AVR-t elhasználni ezért,( mert olyan működő összeállításom már van)?
(#) TavIR-AVR válasza pont hozzászólására (») Szept 7, 2016 /
 
A midulokkal a beszélgetés:
_CS láb aktív
SPI beszélgetés
_CS láb alacsony

_Másik_CS láb aktív
SPI beszélgetés
_Másik_CS láb alacsony
(#) pont válasza TavIR-AVR hozzászólására (») Szept 7, 2016 /
 
Köszönöm a válaszod, csak a SPIOUT maga kapcsolta a CS lábat a konfiguráláskor megadott porton. Akkor úgy kell, hogy konfiguráláskor nem adunk meg cs-hez portot és adat küldés előtt a kívánt portot kapcsolgatjuk?
(#) TavIR-AVR válasza pont hozzászólására (») Szept 8, 2016 /
 
Én így szoktam tenni...
Magam kapcsolgatom a CS lábat, ne az SPI kezelő program (pont a több eszköz miatt) az ördög rossz alvókáva miatt at /SS lábat nem is használom /CS-ként.
(#) pont válasza TavIR-AVR hozzászólására (») Szept 8, 2016 /
 
Köszönöm!
(#) jimmi12 hozzászólása Szept 20, 2016 /
 
Üdv ismét,

A BascomAVR könyvről tud valaki, hogy hova "tűnt" el? Az összes link ami oda mutat hibát ír ki..
Esetleg valakinek megvan elektronikus formában?
(#) eyess válasza jimmi12 hozzászólására (») Szept 20, 2016 /
 
Nekem meg van, de legalább 45M zip , azt ide méret miatt nem tudom feltölteni.Mi kell belőle , lehet nem is kellene mind.
(#) jimmi12 válasza eyess hozzászólására (») Szept 20, 2016 /
 
Helo,

Ha megtennéd, hogy elküldenéd privátban nagyon megköszönném.
Szakirodalom, nemárt ha megvan a teljes verzió
A hozzászólás módosítva: Szept 20, 2016
(#) eyess válasza jimmi12 hozzászólására (») Szept 20, 2016 /
 
Ok töltöm , és majd küldöm , ha majd sikerül ,és megkapod , akkor jelezz vissza hogy sikerült e , és nem sérült e meg .Tehát meg tudod nyitni ki tudod csomagolni stb.

Részemről elküldtem.
A hozzászólás módosítva: Szept 20, 2016
(#) jimmi12 válasza eyess hozzászólására (») Szept 20, 2016 /
 
Köszönöm szépen! A csomag sikeresen megérkezett és minden rendben vele.

Igazából a PWM-el kapcsolatos részt kerestem, összeraktam egy kis kapcsolást (a PB6-ra egy fet és 1db fehér led, ADC7-en 10k poti), ennek a fényerejét szeretném PWM-el szabályozni. Az ADC működik, viszont a led meg sem villan, még nyomozom mit rontottam el...

  1. $regfile = "m1284pdef.dat"                                  ' specify the used AVR
  2.  
  3. $crystal = 16000000                                         ' used crystal frequency
  4. $hwstack = 32                                               ' default use 32 for the hardware stack
  5. $swstack = 20                                               ' default use 10 for the SW stack
  6. $framesize = 60                                             ' default use 40 for the frame space
  7. $baud = 19200                                               ' use baud rate 19200 baud
  8.  
  9. Config Timer3 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Prescale = 64
  10. Start Timer3
  11.  
  12. Config ADC = Single , Prescaler = Auto
  13. Start ADC
  14.  
  15. Dim W as WORD
  16.  
  17. Do
  18. W = Getadc(7)
  19. Print W
  20.  
  21. Pwm3a = W
  22. Loop
  23. End
(#) eyess válasza jimmi12 hozzászólására (») Szept 20, 2016 /
 
Esetleg nincs véletlenül fordítva a led ?
Sosem lehet tudni .
(#) GPeti1977 válasza jimmi12 hozzászólására (») Szept 20, 2016 /
 
A lábat állitsd be kimenetnek.
(#) Thowra hozzászólása Jan 1, 2017 /
 
Üdv!
Atmega 328P vel (16MHz en jár) szeretnék lekérdezni egy DS18S20 hőmérőt, és kiírni a hőmérsékletet LCD re vagy elküldeni soros porton..
A hőmérő a portd.0 lábon van.
Több forrást is próbáltam de egyikkel sem működik.
Van esetleg valakinek kipróbált, működő forrása?
Előre is köszönöm.
(#) Thowra válasza Thowra hozzászólására (») Jan 1, 2017 /
 
megoldódott, kábelhiba volt...
(#) gerry válasza pont hozzászólására (») Jan 30, 2017 /
 
Parancsolj!
(#) pont válasza gerry hozzászólására (») Jan 30, 2017 /
 
Nagyon szépen köszönöm, tényleg!!!
(#) Moderátor hozzászólása Jan 31, 2017
 
"Pont" kérésére az okafogyott hozzászólások törlésre kerültek.
A hozzászólás módosítva: Jan 31, 2017
(#) Thowra hozzászólása Márc 14, 2017 /
 
Üdv!
Egy mpu6050 szenzort szeretnék használni. Tud esetleg valaki minta kódot a szenzorhoz? Előre is köszönöm.
(#) GPeti1977 válasza Thowra hozzászólására (») Márc 14, 2017 /
 
Itt volt MPU, nem tudom meg van-e nézd át az oldalt ha nincs meg van lementett programom.
(#) Thowra válasza GPeti1977 hozzászólására (») Márc 14, 2017 /
 
Egyelőre nem találom. A lementett program nagy segítség lenne.
(#) GPeti1977 válasza Thowra hozzászólására (») Márc 15, 2017 /
 
Ezt találtam mikor kísérleteztem vele, csak már 5 éve.
  1. '===CHIP SETTINGS===
  2. $regfile = "m128def.dat"
  3. $framesize = 320
  4. $swstack = 160
  5. $hwstack = 160
  6. $crystal = 16000000
  7. $baud1 = 38400
  8.  
  9. Config Scl = Portd.0
  10. Config Sda = Portd.1
  11.  
  12. Open "COM2:" For Binary As #1
  13. Const Mpuaddw = &B11010000                                  'AD0 auf Masse
  14. Const Mpuaddr = &B11010001
  15. '--MPU6000--
  16. Dim Test As Byte
  17. Dim Gyrox As Integer
  18. Dim Gyroy As Integer
  19. Dim Gyroz As Integer
  20. Dim Tmp_gyrox(2) As Byte At Gyrox Overlay                   'nick
  21. Dim Tmp_gyroy(2) As Byte At Gyroy Overlay                   'roll
  22. Dim Tmp_gyroz(2) As Byte At Gyroz Overlay                   'yaw
  23. Dim Xacc_pre As Integer
  24. Dim Yacc_pre As Integer
  25. Dim Zacc_pre As Integer
  26. Dim Tmp_accx(2) As Byte At Xacc_pre Overlay
  27. Dim Tmp_accy(2) As Byte At Yacc_pre Overlay
  28. Dim Tmp_accz(2) As Byte At Zacc_pre Overlay
  29. Dim Meas_nick As Single
  30. Dim Meas_roll As Single
  31. Dim Yaw_gyro As Single
  32. Dim Xacc As Single
  33. Dim Yacc As Single
  34. Dim Zacc As Single
  35.  
  36. Declare Sub Read_mpu
  37. Declare Sub Init_mpu
  38.  
  39. I2cinit
  40.  
  41.  
  42.  
  43. Waitms 100
  44. Init_mpu
  45. Print #1 , "OK";
  46.  
  47.  
  48.  
  49.  
  50. Do
  51. Read_mpu
  52.  
  53. Waitms 250
  54.  
  55. Print #1 , "$" ; Meas_nick;
  56. Loop
  57.  
  58. End
  59.  
  60. Sub Init_mpu
  61.    I2cstart                                                 'start condition
  62.   I2cwbyte Mpuaddw                                         'write adress of MPU-6050
  63.    I2cwbyte 117                                             'Register 117 "Who am I"
  64.   I2crepstart                                              'repeated start
  65.    I2cwbyte Mpuaddr                                         'read adress of MPU-6050
  66.   I2crbyte Test , Nack                                     'read byte WHO_AM_I (Reg 117)
  67.    I2cstop                                                  'stop condition
  68.   I2cstart                                                 'start condition
  69.    I2cwbyte Mpuaddw                                         'write adress of MPU-6050
  70.   I2cwbyte 25                                              'Register 25 Sample Rate Divider (1..8 kHz)
  71. 'mal spielen...
  72. '&B00000001 wäre 500 Hz
  73.    I2cwbyte &B00000000                                      'Divider set to 1   (soll)
  74.   I2cstop                                                  'stop condition
  75.    'Low pass filter
  76.   '0=256Hz &B00000000
  77.    '1 = 188hz &B00000001
  78.   '2 = 98hz &B00000010
  79.    '3 = 42hz &B00000011
  80.   '4 = 20hz  &B00000100
  81.    '5 = 10hz  &B00000101
  82.   '6 = 5hz   &B00000110
  83.    I2cstart                                                 'start condition
  84.   I2cwbyte Mpuaddw                                         'write adress of MPU-6050
  85.    I2cwbyte 26                                              'Register 26 DLPF_CFG (digital lowpass filter) Configuration
  86.   I2cwbyte &B00000011                                      'Bits 0..2 = 000 - ACC:260Hz, 0.0ms; Gyro:256Hz, 0.98ms   ( &B00000000 )
  87.    I2cstop                                                  'stop condition
  88. '42hz scheint gut
  89.    'gyro full range
  90.   '250°/s  &B00000000
  91.    '500°/s  &B00001000
  92.   '1000°/s  &B00010000
  93.    '2000°/s  &B00011000
  94.  
  95.   I2cstart                                                 'start condition
  96.    I2cwbyte Mpuaddw                                         'write adress of MPU-6050
  97.   I2cwbyte 27                                              'Register 27 Gyro Configuration
  98.    I2cwbyte &B00011000                                      'Bits 3+4 = 00 - Full Scale Range: +/-250°/s
  99.   I2cstop                                                  'stop condition
  100.    'ACC full range
  101.   '+-2g &B00000000
  102.    '+-4g &B00001000
  103.   I2cstart                                                 'start condition
  104.    I2cwbyte Mpuaddw                                         'write adress of MPU-6050
  105.   I2cwbyte 28                                              'Register 28 ACC Configuration
  106. 'set to +-8g?
  107.   '&B00000000 = 2g
  108.    '&B00001000 = 4g
  109.   '&B00010000 = 8g
  110.    '&B00011000 = 16g
  111.   I2cwbyte &B00000000                                      'Bits 3+4 = 00 - Full Scale Range: +/-2g / No High Pass Filter
  112.    I2cstop                                                  'stop condition
  113.   I2cstart                                                 'start condition
  114.    I2cwbyte Mpuaddw                                         'write adress of MPU-6050
  115.   I2cwbyte 107                                             'Register 107 Power Management 1
  116.    'temp enabled: &B00000011
  117.   'temp disabled: &B00001011
  118.    I2cwbyte &B00000011                                      'No Reset / No Sleep / No Cycle / Temp_Sens: Dis / Clock Source: Z-Gyro
  119.   I2cstop
  120. End Sub
  121.  
  122. Sub Read_mpu
  123.   I2cstart                                                 'X ACC
  124.    I2cwbyte Mpuaddw
  125.    I2cwbyte 59
  126.    I2crepstart
  127.    I2cwbyte Mpuaddr
  128.    I2crbyte Tmp_accx(2) , Ack
  129.    I2crbyte Tmp_accx(1) , Ack
  130.    I2crbyte Tmp_accy(2) , Ack
  131.    I2crbyte Tmp_accy(1) , Ack
  132.    I2crbyte Tmp_accz(2) , Ack
  133.    I2crbyte Tmp_accz(1) , Nack
  134.    I2cstop
  135.    I2cstart                                                 'X GYRO
  136.   I2cwbyte Mpuaddw
  137.   I2cwbyte 67
  138.   I2crepstart
  139.   I2cwbyte Mpuaddr
  140.   I2crbyte Tmp_gyrox(2) , Ack
  141.   I2crbyte Tmp_gyrox(1) , Ack
  142.   I2crbyte Tmp_gyroy(2) , Ack
  143.   I2crbyte Tmp_gyroy(1) , Ack
  144.   I2crbyte Tmp_gyroz(2) , Ack
  145.   I2crbyte Tmp_gyroz(1) , Nack
  146.   I2cstop
  147. '  Shift xAcc , Right , 5 , Signed                          '+-1024 bei 2g
  148. '  Shift yAcc , Right , 5 , Signed
  149. '  Shift zAcc , Right , 5 , Signed
  150. '  Shift Meas_nick , Right , 5 , Signed                         '+-1024 bei 250°/s
  151. '  Shift Meas_roll , Right , 5 , Signed
  152. '  Shift Yaw_gyro , Right , 5 , Signed
  153.   'Meas_nick = Gyrox / 76.8                                 '65536/1024/(300/250) MPU gyro scaling equals adxrs300 scaling
  154.   'Meas_roll = Gyroy / 76.8
  155.    'Yaw_gyro = Gyroz / 76.8
  156. '   Meas_nick = Gyrox / 38.4                                 'bei 500°/s
  157. '   Meas_roll = Gyroy / 38.4
  158. '   Yaw_gyro = Gyroz / 38.4
  159.   Meas_nick = Gyrox / 8.7                                  'bei 2000°/s
  160.    Meas_roll = Gyroy / 8.7
  161.    Yaw_gyro = Gyroz / -8.7
  162.  
  163.    Xacc = Xacc_pre                                          '65536/1024 MPU acc scaling equals ADXL322 scaling
  164.   Yacc = Yacc_pre
  165.   Zacc = Zacc_pre
  166.  
  167.  
  168.   End Sub
Következő: »»   12 / 18
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem