امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
spi نرم افزاری
نویسنده پیام
kelaran آفلاین
كاربر دو ستاره
**

ارسال‌ها: 76
موضوع‌ها: 14
تاریخ عضویت: اسفند ۱۳۹۱

تشکرها : 61
( 13 تشکر در 12 ارسال )
ارسال: #1
spi نرم افزاری
سلام این برنامه رو از تو نت گرفتم که مربوط به spi به صورت نرم تفزتریه اما مقادیر رو کامل نمیخونه.فرض کنید مقادیر ولتاز رو که بخواد به صورت word نشون بده اگه مقدارش 1023 باشه.به صورت دوتا 512 نشون میده.یعنی از 0 تا 512 و دوباره از 0 تا512.اینم کد بزنامه.در ضمن ارتباط بین میکرو و یه مبدل خارجی .
کد:
$regfile = "m32def.dat"
$crystal = 16000000
Config Lcd = 16 * 2
Cursor Off




Config Spi = Soft , Din = Pinb.6 , Ss = None , Clock = Pinb.7
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5

Dim One As Byte
Dim Two As Byte
Dim Final As Integer


Config Portb.4 = Output
Config Portb.6 = INput
Config Portb.7 = Output
Set Portb.4


Do

Reset Portb.4


         One = Spimove(&Hff )

        Two = Spimove(&Hff )
         Set Portb.4

         One = One And &H1F
         Final = One
         Shift Final , Left , 1
         Shift Two , Right , 7
         Final = Final Or Two

          Locate 1 , 1
  Lcd Final ; "    "
   Loop

اینم یه کد دیگه اما برنامه رو نمیتونم تو مد نرم افزاری راه بندازم.ولی تو مد سخت افزاری کاملا جواب میده
کد:
$regfile = "m8def.dat"
$crystal = 16000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = _
Portd.7 , E = Portd.2 , Rs = Portd.0

Config Single = Scientific , Digits = 2
Dim Adc_lsb As Byte
Dim Adc_msb As Byte
Dim Adc_value As Integer

Cursor Off Noblink

Spcr = Spcr Or &B01010001

Config Portb.5 = Output
Config Portb.2 = Output

Set Portb.2

Do



    Reset Portb.2

    Gosub Adc_read

    Adc_msb = Spdr

    Gosub Adc_read

    Adc_lsb = Spdr

    Set Portb.2

    Adc_msb = Adc_msb And &B00011111

    Adc_value = Adc_msb

    Shift Adc_value , Left , 5

    Shift Adc_lsb , Right , 3

    Adc_value = Adc_value Or Adc_lsb

     Locate 2 , 1
    Lcd Adc_value ; "   "
Loop

Adc_read:

   Spdr = &H00

   Bitwait Spsr.7 , Set

Return


End
(آخرین ویرایش در این ارسال: ۱۳-شهریور-۱۳۹۳, ۲۱:۱۵:۲۹، توسط kelaran.)
۱۳-شهریور-۱۳۹۳, ۲۱:۱۱:۳۲
ارسال‌ها
پاسخ
kelaran آفلاین
كاربر دو ستاره
**

ارسال‌ها: 76
موضوع‌ها: 14
تاریخ عضویت: اسفند ۱۳۹۱

تشکرها : 61
( 13 تشکر در 12 ارسال )
ارسال: #2
RE: spi نرم افزاری
اینقدر سوال ما سخت بود؟؟؟
۱۵-شهریور-۱۳۹۳, ۱۴:۲۸:۴۹
ارسال‌ها
پاسخ
kelaran آفلاین
كاربر دو ستاره
**

ارسال‌ها: 76
موضوع‌ها: 14
تاریخ عضویت: اسفند ۱۳۹۱

تشکرها : 61
( 13 تشکر در 12 ارسال )
ارسال: #3
RE: spi نرم افزاری
نبود کسی؟مت همچنان چشم به راه دوستان هستبم
۱۵-شهریور-۱۳۹۳, ۲۳:۵۳:۱۱
ارسال‌ها
پاسخ
seoli آفلاین
تازه وارد

ارسال‌ها: 7
موضوع‌ها: 0
تاریخ عضویت: مرداد ۱۳۹۳

تشکرها : 6
( 17 تشکر در 6 ارسال )
ارسال: #4
RE: spi نرم افزاری
من بسکام بلد نیستم ولی اصولا این مشکل وقتی پیش میاد که نوع واریابلی که انتخاب کردید کوچکتر از مقدار داده ای هست که توش میریزید . یه نوعی سر ریز دیتا میشه .
۱۶-شهریور-۱۳۹۳, ۰۳:۲۷:۲۹
ارسال‌ها
پاسخ
تشکر شده توسط : a.mehran, kelaran, helma
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #5
RE: spi نرم افزاری
کلا اطلاعات بایستی 8بیتی فرستاده و یا گرفته بشه ، هر 8 بیت که دریافت یا ارسال بشه ، در صورت نیاز این اطلاعات 8 بیتی باید سر هم بشن. یعنی یه بافر ورودی مثلا از جنس byte باشه مثلا آرایه ی A ، بعد از دریافت اطلاعات تو این بافر یه متغییر word مثلا B تعریف می کنی و اطلاعات بافر رو توش سر هم می کنی. یعنی :

کد php:
shift A(1), left8
or A(2

۱۶-شهریور-۱۳۹۳, ۲۱:۱۶:۵۷
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : kelaran, helma, a.mehran
kelaran آفلاین
كاربر دو ستاره
**

ارسال‌ها: 76
موضوع‌ها: 14
تاریخ عضویت: اسفند ۱۳۹۱

تشکرها : 61
( 13 تشکر در 12 ارسال )
ارسال: #6
RE: spi نرم افزاری
خوب مهندس فکر کنم منم همین کاری که گفتی رو انجام داده بودم.اشتباه میگم؟اصلا این برنامه دوم رو نمیشه تو مد نرم افزاری تنظیم کرد؟
۱۶-شهریور-۱۳۹۳, ۲۱:۴۲:۱۴
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  پیکربندی SPI نرم افزاری در کدویژن pedram032 2 3,661 ۱۷-دى-۱۳۹۵, ۲۲:۳۷:۱۴
آخرین ارسال: omid_phoenix
  راه اندازی سخت افزاری spi فروم باز 0 2,089 ۱۳-مرداد-۱۳۹۱, ۲۲:۱۵:۱۷
آخرین ارسال: فروم باز
  نرم افزاری برای تبدیل عکس به BGF؟ ehsancompany 0 2,137 ۲۹-تير-۱۳۹۱, ۲۲:۴۳:۵۹
آخرین ارسال: ehsancompany
  ساختن قفل سخت نرم افزار ها افزاری بامیکرو abbasalifix 3 3,972 ۲۴-دى-۱۳۹۰, ۱۳:۳۷:۳۴
آخرین ارسال: maxn@morteza
  پورت سریال نرم افزاری + کدویژن amin_vb 4 4,911 ۰۳-بهمن-۱۳۸۹, ۱۲:۲۶:۰۵
آخرین ارسال: amin_vb
  افزایش سرعت SPI سخت افزاری در بسکام mohenjooon 3 4,151 ۲۶-دى-۱۳۸۹, ۰۰:۴۹:۳۱
آخرین ارسال: mohenjooon

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS