NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 2798 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
صفحه 1 از 6 123456 آخرینآخرین
نمایش نتایج: از 1 به 20 از 102

موضوع: اموزش میکرو stm8

  1. #1
    همکار افتخاری
    تاریخ عضویت
    Jul 2007
    نام
    محمد هادی عبدی
    نوشته ها
    129
    تشکر
    82
    تشکر شده 294 بار در 73 پست

    پیش فرض اموزش میکرو stm8

    سلام دوستان اموزش stm8 به امید خدا کنار هم میخوام شروع کنیم در پله اول من برای شما دوستان ساختن پروژه رو میذارم
    HADI ABDI STM8 - YouTube
    این هم فیلم یوتیوپ که خودم اپلود کردم که روش ساخت و شبیه سازی پروژه رو نشون میده
    کامپایلر هم iar v2 هستش که تو سایت هست میتونید دانلود کنید
    برای شما فایل پروژه هم قرار میدم
    قسمت اول STM8
    فايل هاي پيوست شده فايل هاي پيوست شده
    • نوع فایل: rar Project.rar (407.6 کیلو بایت, 1822 نمايش)
    ویرایش توسط hadiabdi : 15-12-2014 در ساعت 13:26


  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نام
    Advertising world
    نوشته ها
    Many
     

  3. #2
    مدير بخش STM32 sadmonew آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    صادق محمدي
    نوشته ها
    2,002
    تشکر
    6,283
    تشکر شده 3,115 بار در 1,408 پست

    پیش فرض

    سلام مهندس
    دستت درد نکنه. شما ادامه بدین اعضای انجمن خصوصا" مدیران سایت ازتون حمایت میکنن(خودم یکیشونم).
    جای این بحث خالی بود. مخصوصا در مقایسه با میکروهای همرده خودش قابل قیاس نیست(کارایی بالا و قیمت پایین میکرو)
    _____________________________________
    _____________________________________

  4. کاربران : 5 تشکر کرده اند از شما sadmonew برای ارسال این پست سودمند:


  5. #3
    همکار افتخاری
    تاریخ عضویت
    Jul 2007
    نام
    محمد هادی عبدی
    نوشته ها
    129
    تشکر
    82
    تشکر شده 294 بار در 73 پست

    پیش فرض

    در گام اول بعد از ساخت پروژه کلاک مستر شما 16 مگ داخلی هستش که توسط پیش فرض کتابخونه انجام شده بعد تقسیم بر 8 شده برای قسمت های جانبی مثل i2c تایمر spi و ........................................ که همه این قسمت های جانبی و میشه قعال و غیر فعال کرد کلاک هر قسمت
    برای فعال کردن کلاک خارجی از این دستور استفاده میکنید
    کد:
    CLK_HSECmd (FunctionalState NewState)
    برای فعال کردن و غیر فعال کردن قسمت های جانبی از این دستور
    کد:
    CLK_PeripheralClockConfig (CLK_Peripheral_TypeDef CLK_Peripheral, FunctionalState NewState)
    برای تقسیم کردن کلاک داخلی و cpu از این دستور استفاده میکنید
    کد:
    CLK_SYSCLKConfig (CLK_Prescaler_TypeDef CLK_Prescaler)
    برای گرفتن مقدار کلاک سیستم از این دستور استفاده میکنید
    کد:
    CLK_GetClockFreq (void)
    فعال کردن کلاک داخلی
    کد:
    CLK_HSICmd (FunctionalState NewState)
    در این میکرو 2 کلاک داخلی وجود داره یکی 16 مگ یکی 128 کیلو HSI , HLI
    که این کلاک هم با دستور
    کد:
    CLK_LSICmd (FunctionalState NewState)
    فعال میشه
    پایه خروجی کلاک هم با دستور
    کد:
    CLK_CCOCmd (FunctionalState NewState)
    و چه کلاک خارج بشه که با این دستور میتونید تقسیم بندی کنید
    کد:
    CLK_CCOConfig (CLK_Output_TypeDef CLK_CCO)
    کلی دیگه چیزای دیگه داره مثل محافظ کلاک وقفه کلاک ارور کلاک که میتونید خودتون تو راهنماش بخونید من اصلی هاشو برای شما گفتم تو iar
    میتونید مستقیم از رجیسترها هم بارگزاری کنید


    - - - Updated - - -

    فقط من زود زود نمیتونم بیام اگر دیر اومدم از همتون معذرت می خوام قسمت های بعد هم شروع میکنم که تا اخر این هفته تایمر و spi ,پورت سریال انالوگ تو دیجیتال هم میذارم اگر دوستان کمک کردن بقیه اشو به گم هم انجام میدیم خدایی نامردی نکنید
    تصاوير کوچک فايل پيوست تصاوير کوچک فايل پيوست برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: 2014-12-14_16-28-24.jpg
مشاهده: 1092
حجم: 114.0 کیلو بایت  

  6. کاربران : 13 تشکر کرده اند از شما hadiabdi برای ارسال این پست سودمند:


  7. #4
    مدیر انجمن mzarkoob آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    مهدی زرکوب
    نوشته ها
    2,902
    تشکر
    1,202
    تشکر شده 2,317 بار در 1,273 پست

    پیش فرض

    سلام
    مهندس غیر یوتیوپ جایی که فندق شکن نخواد میشه آپلود بفرمایید
    کامپایلر هم iar v2
    کجای سایت هست!؟

  8. تشکرها از این نوشته :


  9. #5
    همکار افتخاری
    تاریخ عضویت
    Jul 2007
    نام
    محمد هادی عبدی
    نوشته ها
    129
    تشکر
    82
    تشکر شده 294 بار در 73 پست

    پیش فرض

    http://www.iranmicro.ir/forum/11748-...DB%8C-iar.html


    سلام تو یوتیوپ بهتره خیلی ها می تونن استفاده کنن من خودم خیلی چیزا رو تو یوتیوپ از برادران خارجی یاد گرفتم والا من زیاد بلد هم نیستم جایی سراغ دارید ادرس بدید

  10. کاربران : 3 تشکر کرده اند از شما hadiabdi برای ارسال این پست سودمند:


  11. #6
    کاربر علاقه مند
    تاریخ عضویت
    Oct 2011
    نوشته ها
    71
    تشکر
    69
    تشکر شده 55 بار در 33 پست

  12. تشکرها از این نوشته :


  13. #7
    مدیر انجمن mzarkoob آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    مهدی زرکوب
    نوشته ها
    2,902
    تشکر
    1,202
    تشکر شده 2,317 بار در 1,273 پست

    پیش فرض

    این همون لینکیه که نمیشه ازش دانلود کرد و یه جای کار قطع میشه . سرعتشم کمه خیلی. اگه دانلود کردید می تونید آپلود کنید. من نسخه قبلیش تو این تاپیک اپلود کردم

  14. تشکرها از این نوشته :


  15. #8
    همکار افتخاری
    تاریخ عضویت
    Jul 2007
    نام
    محمد هادی عبدی
    نوشته ها
    129
    تشکر
    82
    تشکر شده 294 بار در 73 پست

    پیش فرض

    من از همین سایت دانلود کردم مشکلی نداره فقط صبح ها سرعتش بیشتر مخصوصا 6 تا 9 صبح از سایت اصلی دانلود کنید من کرک گذاشتم

  16. کاربران : 2 تشکر کرده اند از شما hadiabdi برای ارسال این پست سودمند:


  17. #9
    همکار افتخاری
    تاریخ عضویت
    Jul 2007
    نام
    محمد هادی عبدی
    نوشته ها
    129
    تشکر
    82
    تشکر شده 294 بار در 73 پست

    پیش فرض

    این تیکه فیلم هم ادامه فیلم و اول
    STM8

  18. کاربران : 9 تشکر کرده اند از شما hadiabdi برای ارسال این پست سودمند:


  19. #10
    عضو جدید hamid27 آواتار ها
    تاریخ عضویت
    Dec 2014
    نوشته ها
    8
    تشکر
    88
    تشکر شده 1 بار در 1 پست

    پیش فرض

    عاقا به جایه تیکه تیکه گزاشتن یه فندوق شکن خوب بده بتونیم فیلم ها رو ببینیم ثواب دنیا و اخرت رو میبری

  20. #11
    کاربر فعال
    تاریخ عضویت
    Dec 2007
    نوشته ها
    113
    تشکر
    92
    تشکر شده 78 بار در 59 پست

    پیش فرض

    سلام
    شاید
    Cosmic Software - Download
    بدرد دوستان بخوره!
    البته پولیه ولی ظاهرا حالت رایگان تا 8 کیلوبایت و با ثبت نام تا 32 کیلو بایت رو می تونید استفاده کنید.
    برای 32 کیلوبایت لینک زیر باید دانلود کنید و بعد نصب حتما با یه ایمیل معتبر لایسنس بگیرین
    http://www.cosmicsoftware.com/cxstm8_32k.exe

    ---
    خودم هنوز امتحان نکردم

  21. کاربران : 2 تشکر کرده اند از شما dostajn برای ارسال این پست سودمند:


  22. #12
    همکار افتخاری
    تاریخ عضویت
    Jul 2007
    نام
    محمد هادی عبدی
    نوشته ها
    129
    تشکر
    82
    تشکر شده 294 بار در 73 پست

    پیش فرض

    سلام این هم یک قسمت دیگه پورت ها
    این دستور هر پورت انتخاب شده ایی و به خال ریست بر میگردونه
    کد:
    GPIO_DeInit (GPIO_TypeDef *GPIOx)
    این دستور هر پورتی که انتخاب کنید PullUp میکنه هر پینی همه و...................حتی نیبلی
    این دستور تنظیمات پایه ها پورت و انجام میده
    کد:
    GPIO_Init (GPIO_TypeDef *GPIOx, GPIO_Pin_TypeDef GPIO_Pin, GPIO_Mode_TypeDef GPIO_Mode)
    این دستور برای خواندن پورت نه پین !!!!!!!!!!!!!!!
    کد:
    GPIO_ReadInputData (GPIO_TypeDef *GPIOx)
    این دستور برای خوندن پین نه پورت!!!!!!!!!!!!!!!!
    کد:
    GPIO_ReadInputPin (GPIO_TypeDef *GPIOx, GPIO_Pin_TypeDef GPIO_Pin)
    این دستور هم برای نوشتن روی پورت !!!!!!!!!
    کد:
    GPIO_Write (GPIO_TypeDef *GPIOx, uint8_t PortVal)
    این دستور هم برای یک کردن پین
    کد:
    GPIO_WriteHigh (GPIO_TypeDef *GPIOx, GPIO_Pin_TypeDef PortPins)
    این دستور هم برای صفر کردن پین
    کد:
    GPIO_WriteLow (GPIO_TypeDef *GPIOx, GPIO_Pin_TypeDef PortPins)
    این دستور هم پین مقدارشو تو هر دفعه اجرا وارونه میکنه
    کد:
    GPIO_WriteReverse (GPIO_TypeDef *GPIOx, GPIO_Pin_TypeDef PortPins)
    چند نمونه

    کد:
      GPIO_Init (GPIOC,GPIO_PIN_2,GPIO_MODE_OUT_PP_LOW_FAST ); 
     GPIO_Init (GPIOC,GPIO_PIN_1,GPIO_MODE_IN_PU_NO_IT ); 
       
      GPIO_Init (GPIOC,GPIO_PIN_ALL,GPIO_MODE_OUT_PP_LOW_FAST );
    کد:
       GPIO_WriteHigh(GPIOC,GPIO_PIN_2);    Delay(1000000);   
       GPIO_WriteLow (GPIOC,GPIO_PIN_2);
        Delay(1000000);
    کد:
    if(!GPIO_ReadInputPin (GPIOC,GPIO_PIN_1) ){     GPIO_WriteHigh(GPIOC,GPIO_PIN_2); 
        }
        else GPIO_WriteLow (GPIOC,GPIO_PIN_2);
        Delay(100);
    کد:
     GPIO_Write (GPIOC,0xff);    Delay(1000000);
        GPIO_Write (GPIOC,0x00);
        Delay(1000000);
    تصاوير کوچک فايل پيوست تصاوير کوچک فايل پيوست برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: 2014-12-15_13-10-30.jpg
مشاهده: 1006
حجم: 24.5 کیلو بایت  
    ویرایش توسط hadiabdi : 15-12-2014 در ساعت 14:12

  23. کاربران : 11 تشکر کرده اند از شما hadiabdi برای ارسال این پست سودمند:


  24. #13
    همکار افتخاری
    تاریخ عضویت
    Jul 2007
    نام
    محمد هادی عبدی
    نوشته ها
    129
    تشکر
    82
    تشکر شده 294 بار در 73 پست

    پیش فرض

    حالا میرسیم به بحث شیرین انالوگ تو دیجیتال
    اول این تصویر و نگاه کنید
    تا بفهمید چطوری کار میکنه این مد اسکنش خیلی باحاله تمام ورودی ها رو به نوبت اسکن میکنه بعدش بافرش که پرشد پرچم وقفه اش عمل میکنه
    تصاوير کوچک فايل پيوست تصاوير کوچک فايل پيوست برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: 2014-12-15_20-08-56.jpg
مشاهده: 1025
حجم: 123.1 کیلو بایت  

  25. کاربران : 10 تشکر کرده اند از شما hadiabdi برای ارسال این پست سودمند:


  26. #14
    همکار افتخاری
    تاریخ عضویت
    Jul 2007
    نام
    محمد هادی عبدی
    نوشته ها
    129
    تشکر
    82
    تشکر شده 294 بار در 73 پست

    پیش فرض

    این قسمت جالب ناظر ولتاژ adc هستش که شمابراش استانه بالا و پایین تعریف میکنید که ولتاژ باید بین این دوتا استانه باشه اگر نباشه پرچم وقفه ناظر تون یا همون (واچ داگ ) فعال میکنه


    کد:
    ADC1_AWDChannelConfig (ADC1_Channel_TypeDef Channel, FunctionalState NewState)
    با این دستور زیر استانه بالا رو تعیین میکنید
    کد:
    ADC1_SetHighThreshold ( uint16_t Threshold )
    با این دستور استانه پایین و تعیین میکنید
    کد:
    ADC1_SetLowThreshold (uint16_t Threshold)
    با این دستور کلا همه رجیستر های این قسمت و ریست میکنید
    کد:
    ADC1_DeInit (void)
    یک بافر داره این adc واقعا باقلوا چون میتونه هم 10 بار از یک کانال نمونه برداره هم میتونه از هر 10 کانال پست سر هم نمونه برداری کنه
    هر وقت هم تموم بشه پرچمش یک میشه
    کد:
    ADC1_GetBufferValue (uint8_t Buffer)
    برای تست پرچم هم از این دستور استفاده می کنید
    کد:
    ADC1_GetFlagStatus (ADC1_Flag_TypeDef Flag)
    حالا برگزاری کلی هر کانالی که دوست دارید
    کد:
    ADC1_Init (ADC1_ConvMode_TypeDef ADC1_ConversionMode, ADC1_Channel_TypeDef ADC1_Channel, ADC1_PresSel_TypeDef ADC1_PrescalerSelection, ADC1_ExtTrig_TypeDef ADC1_ExtTrigger, FunctionalState ADC1_ExtTriggerState, ADC1_Align_TypeDef ADC1_Align, ADC1_SchmittTrigg_TypeDef ADC1_SchmittTriggerChannel, FunctionalState ADC1_SchmittTriggerState)
    از این دستور باید برای فعال کردن وقفه استفاده کنید
    کد:
    ADC1_ITConfig
    دستور تقسیم بندی کلاک
    کد:
    ADC1_PrescalerConfig (ADC1_PresSel_TypeDef ADC1_Prescaler)
    این دستور بسیار زیبا اسکن
    کد:
    ADC1_ScanModeCmd (FunctionalState NewState)
    یک دستور دیگه ایی هم داره برایSCHMITTTRIG کردن
    کد:
    ADC1_SchmittTriggerConfig (ADC1_SchmittTrigg_TypeDef ADC1_SchmittTriggerChannel, FunctionalState NewState)
    این دستور هم برای استارت عمل تبدیل
    کد:
    ADC1_StartConversion (void)
    این هم یک نمونه
    کد:
    CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);uart2_hadi_confing();
     ADC1_DeInit(); 
     ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS,ADC1_CHANNEL_0,ADC1_PRESSEL_FCPU_D2,
               ADC1_EXTTRIG_TIM,DISABLE,ADC1_ALIGN_RIGHT,ADC1_SCHMITTTRIG_CHANNEL0,
               DISABLE);
     ADC1_StartConversion();
              
      
      
      while (1)
      { 
        
           
    while(ADC1_GetFlagStatus(ADC1_FLAG_EOC )==0);
    Conversion_Value=ADC1_GetConversionValue(); 
     printf("Conversion Value=%d\n\r",Conversion_Value);     
     ADC1_ClearFlag(ADC1_FLAG_EOC);      
    Delay(100000);
    ویرایش توسط hadiabdi : 15-12-2014 در ساعت 21:44

  27. کاربران : 11 تشکر کرده اند از شما hadiabdi برای ارسال این پست سودمند:


  28. #15
    همکار افتخاری
    تاریخ عضویت
    Jul 2007
    نام
    محمد هادی عبدی
    نوشته ها
    129
    تشکر
    82
    تشکر شده 294 بار در 73 پست

    پیش فرض

    برای تبدیل به نوع قرار گرفتن بیت های تبدیل شده باشید که به حالت چپ و راست داره چینش بیت ها



    تصاوير کوچک فايل پيوست تصاوير کوچک فايل پيوست برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: AD1.jpg
مشاهده: 981
حجم: 96.3 کیلو بایت  

  29. کاربران : 8 تشکر کرده اند از شما hadiabdi برای ارسال این پست سودمند:


  30. #16
    همکار افتخاری
    تاریخ عضویت
    Jul 2007
    نام
    محمد هادی عبدی
    نوشته ها
    129
    تشکر
    82
    تشکر شده 294 بار در 73 پست

    پیش فرض

    قسمت پورت سریال این میکرو با uart2 کار میکنه و پورت 1 و 3 نداره قبل از برنامه نویسی به تمام حروف روی پکیج ای سی نگاه کنید چون بعضی ها یه سری امکانات دارن و بعضی ها ندارن
    این دستور ریست میکنه uart2 وبه حالا پیش فرض میبره
    کد:
    UART2_DeInit (void)
    این دستور پاک میکنه پرچم های رویدادهای پورست سریال
    کد:
    UART2_ClearFlag (UART2_Flag_TypeDef UART2_FLAG)
    توی تابع وقفه از این دستور استفاده میکنید برای پرچم های حالت انتظار نخواستیتم استفاده نکنید والاااااااااااااااااا
    کد:
    UART2_ClearITPendingBit (UART2_IT_TypeDef UART2_IT)
    فعال و غیرفعال کردن پورت سریال
    کد:
    UART2_Cmd (FunctionalState NewState)
    تست کردن پرچم ها وقفه که ببینیم 1 یا 0 هستن
    کد:
    UART2_GetFlagStatus (UART2_Flag_TypeDef UART2_FLAG)
    چک کردن پزچم های وقفه
    کد:
    UART2_GetITStatus (UART2_IT_TypeDef UART2_IT)
    تنظمیات پورت سریال با این تابع به صورت کلی انجام میشه
    کد:
    UART2_Init (uint32_t BaudRate, UART2_WordLength_TypeDef WordLength, UART2_StopBits_TypeDef StopBits, UART2_Parity_TypeDef Parity, UART2_SyncMode_TypeDef SyncMode, UART2_Mode_TypeDef Mode)
    این دستورات برای حال مادون قرمز هستش که هر کس میخواد باهاش کار کنه نوع شکل صفر و یک تو این حالت تغییر میکنه و استاندار خاص خودش میشه در دستورات بعدی هم برای شبکه گره ایی هستش که مستر و اسلیو و خاله بازی ها شبکه
    کد:
    void UART2_IrDACmd (FunctionalState NewState)
    Enables or disables the UART2�s IrDA interface.
    void UART2_IrDAConfig (UART2_IrDAMode_TypeDef UART2_IrDAMode)
    Configures the UART2�s IrDA interface.
    void UART2_ITConfig (UART2_IT_TypeDef UART2_IT, FunctionalState NewState)
    Enables or disables the specified UART2 interrupts.
    void UART2_LINBreakDetectionConfig (UART2_LINBreakDetectionLength_TypeDef UART2_LINBreakDetectionLength)
    Sets the UART2 LIN Break detection length.
    void UART2_LINCmd (FunctionalState NewState)
    Enables or disables the UART2 LIN mode.
    void UART2_LINConfig (UART2_LinMode_TypeDef UART2_Mode, UART2_LinAutosync_TypeDef UART2_Autosync, UART2_LinDivUp_TypeDef UART2_DivUp)
    Configure the UART2 peripheral.
    دریافت کاراکتر حالت 8 بیتی
    کد:
    UART2_ReceiveData8 (void)
    دریافت کاراکتر به صورت 9 بیتی
    کد:
    UART2_ReceiveData9 (void)
    فرستادن 8 بیتی
    کد:
    UART2_SendData8 (uint8_t Data)
    فرستادن 9 بیتی
    کد:
    UART2_SendData9 (uint16_t Data)

    نمونه کد

    کد:
      UART2_DeInit(); UART2_Init((uint32_t)9600, UART2_WORDLENGTH_8D, UART2_STOPBITS_1, UART2_PARITY_NO,
                  UART2_SYNCMODE_CLOCK_DISABLE , UART2_MODE_TXRX_ENABLE);
    من به کمک مثال ها یک کتابخونه درست کردم که از دستور printf استفاده کنیم


    کد:
    printf("\n\rHADI= %f10\n\r",s);
    فايل هاي پيوست شده فايل هاي پيوست شده

  31. کاربران : 14 تشکر کرده اند از شما hadiabdi برای ارسال این پست سودمند:


  32. #17
    همکار افتخاری
    تاریخ عضویت
    Jul 2007
    نام
    محمد هادی عبدی
    نوشته ها
    129
    تشکر
    82
    تشکر شده 294 بار در 73 پست

    پیش فرض

    من از اقای زرکوب عزیز خواهش میکنم اموزش ها ارم ها رو با این کامپایلر انجام بده به نظر من این کامپایلر بسیار کامل و دقیق درست شده
    ویرایش توسط hadiabdi : 17-12-2014 در ساعت 08:09

  33. تشکرها از این نوشته :


  34. #18
    همکار افتخاری
    تاریخ عضویت
    Jul 2007
    نام
    محمد هادی عبدی
    نوشته ها
    129
    تشکر
    82
    تشکر شده 294 بار در 73 پست

    پیش فرض

    حالا بریم سراغ مد spi
    این دستور جهت فرستنده و گیرنده رو تعیین میکنه
    کد:
    SPI_BiDirectionalLineConfig (SPI_Direction_TypeDef SPI_Direction)
    یه چیزی داریم تو انتقال های به نام کدگذاری crc که اعدادی و که انتقال میده کد میکنه بعد تو پایت اخر به صورت تک بایتی و2 بایتی و............... حالت های مختلف قرار میده که تو انتقال های تو plc خیلی به درد میخوره در جاهایی که خیلی انتقال سالم مهم حکم حیاتی داره
    با این دستور crc فعال میکنیم
    کد:
    SPI_CalculateCRCCmd (FunctionalState NewState)
    دستور پاک کردن پرچم ها
    کد:
    SPI_ClearFlag (SPI_Flag_TypeDef SPI_FLAG)
    دستوری که پرچم های انتظار و تو تابع وقفه پا ک میکنه
    کد:
    SPI_ClearITPendingBit (SPI_IT_TypeDef SPI_IT)
    دستور فعال کردن و غیر فعال کردن مد spi
    کد:
    SPI_Cmd (FunctionalState NewState
    ریست کردن به حالت پیش فرض
    کد:
    SPI_DeInit (void)
    گرفتن کد crc
    کد:
    SPI_GetCRC (SPI_CRC_TypeDef SPI_CRC)
    دستور وضعیت حالت های وقفه
    کد:
    SPI_GetITStatus (SPI_IT_TypeDef SPI_IT)
    دستور تنظیمات کلی در یک تابع
    کد:
    SPI_Init (SPI_FirstBit_TypeDef FirstBit, SPI_BaudRatePrescaler_TypeDef BaudRatePrescaler, SPI_Mode_TypeDef Mode, SPI_ClockPolarity_TypeDef ClockPolarity, SPI_ClockPhase_TypeDef ClockPhase, SPI_DataDirection_TypeDef Data_Direction, SPI_NSS_TypeDef Slave_Management, uint8_t CRCPolynomial)
    فعال و غیر فعال کردن حالت وفقه
    کد:
    SPI_ITConfig (SPI_IT_TypeDef SPI_IT, FunctionalState NewState)
    دستور چیپ سلکت بوسیله نرمافزار روی پایه NSS هر وقت بخواید روی پور چیزی بفرستید این پایه خودش صفر میشه و در پایان یک میشه
    کد:
    SPI_NSSInternalSoftwareCmd (FunctionalState NewState)
    گرفتن دیتا 8 بیتی
    کد:
    SPI_ReceiveData (void)
    فرستادن 8 بیتی
    کد:
    SPI_SendData (uint8_t Data)
    نمونه کد

    کد:
          SPI_DeInit();           SPI_Init( SPI_FIRSTBIT_MSB, SPI_BAUDRATEPRESCALER_128, SPI_MODE_MASTER,
               SPI_CLOCKPOLARITY_LOW, SPI_CLOCKPHASE_2EDGE, SPI_DATADIRECTION_2LINES_FULLDUPLEX,
               SPI_NSS_SOFT, 0x07);
    
    
    
    
      /* SD_SPI enable */
      SPI_Cmd( ENABLE);
    کد:
       SPI_SendData(170) ; 
       Delay(100);

  35. کاربران : 10 تشکر کرده اند از شما hadiabdi برای ارسال این پست سودمند:


  36. #19
    همکار افتخاری
    تاریخ عضویت
    Jul 2007
    نام
    محمد هادی عبدی
    نوشته ها
    129
    تشکر
    82
    تشکر شده 294 بار در 73 پست

    پیش فرض

    قسمت پیچیده تایمر که من در حد فهمم از دیتاشیت برای شما دوستان توضیح میدم این توضیحات در مورد تایمر 1 هست که رجیسترهای بسیار زیادی و امکانات خوبی داره این تایمر 16 بیتی هستش که با کلاک خارجی و کلاک سیستم و ورودی های کانال های مقایسه کننده و انبار کننده کلاک میخوره و کانترش به 3 صورت کار میکنه از 0 تا 65535 و حالت دوم از 65535 تا 0 و حالت سوم چینش از وسط هستش که وقتی به نقطه وسط میرسه شروع به کم شدن میکنه شمای کلی تایمر 1

    یک قسمت اصلی دار به نام تامیر بیس که کارش شمارش 16 بیت که با دستور فعال میشه
    کد:
    TIM1_TimeBaseInit (uint16_t TIM1_Prescaler, TIM1_CounterMode_TypeDef TIM1_CounterMode, uint16_t TIM1_Period, uint8_t TIM1_RepetitionCounter)
    این فرمول کلی برای پیدا کردن زمان
    کد:
    f
    CK_CNT = fCK_PSC/(PSCR[15:0]+1)
    
    تو این دو تا رجیستر 16 بیت برگذاری میکنید
    کد:
    TIM1_ARRH, ARRL
    
    یک قسمت داره تو همین دستور به نام
    کد:
    specifies the Repetition counter value
    که این تکرار سر ریز شدن ها رو تعیین میکنه یعنی بعد از یکبار سر ریز شدن وقفه ایجاد کنه بعد از 2 بار و تا 255 بار
    یک ضابطه دیگه این دستور بالا
    کد:
    specifies the Prescaler value.
    تقسیم بندی هست برای بدست اوردن زمان دلخواه که ازفرمولی که دادم استفاده میکنید
    عکس حالت هایی و که میشه با این تایمر ایجاد کرد و میذارم


    نمونه دستور

    کد:
    TIM1_TimeBaseInit(0, TIM1_COUNTERMODE_UP, 4095, 0);
    این دستور تایمر و روشن میکنه
    کد:
     TIM1_Cmd(ENABLE);
    ادامه اش تا بعد
    .................................................
    تصاوير کوچک فايل پيوست تصاوير کوچک فايل پيوست برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: TIMER.jpg
مشاهده: 966
حجم: 91.7 کیلو بایت   برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: 1.jpg
مشاهده: 958
حجم: 29.8 کیلو بایت   برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: 2.jpg
مشاهده: 959
حجم: 27.8 کیلو بایت   برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: 3.jpg
مشاهده: 935
حجم: 24.7 کیلو بایت   برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: TIMER2.jpg
مشاهده: 959
حجم: 124.0 کیلو بایت  


  37. کاربران : 10 تشکر کرده اند از شما hadiabdi برای ارسال این پست سودمند:


  38. #20
    همکار افتخاری
    تاریخ عضویت
    Jul 2007
    نام
    محمد هادی عبدی
    نوشته ها
    129
    تشکر
    82
    تشکر شده 294 بار در 73 پست

    پیش فرض

    استفاده از وقفه ها در تایمر ، این تایمر وقفه سرزیر و پاریز توسط نرمافزار رویداد ایجاد کردن کپچر و................................ داره
    برای استفاده از این وقفه ها باید از هدر فایل stm8s_it.c استفاده کنید فقط برای تابع وقفه ها پرچم ها رو حتما چک کنید چون تابع وقفه چند گانه هستش باید ببینید برای کدوم پرچم این وقفه ایجاد شده با دستور

    کد:
    TIM1_GetFlagStatus (TIM1_FLAG_TypeDef TIM1_FLAG)
    پرچم های وقفه
    کد:
    • TIM1_FLAG_UPDATE: TIM1 update Flag
    • TIM1_FLAG_CC1: TIM1 Capture Compare 1 Flag
    • TIM1_FLAG_CC2: TIM1 Capture Compare 2 Flag
    • TIM1_FLAG_CC3: TIM1 Capture Compare 3 Flag
    • TIM1_FLAG_CC4: TIM1 Capture Compare 4 Flag
    • TIM1_FLAG_COM: TIM1 Commutation Flag
    • TIM1_FLAG_TRIGGER: TIM1 Trigger Flag
    • TIM1_FLAG_BREAK: TIM1 Break Flag
    • TIM1_FLAG_CC1OF: TIM1 Capture Compare 1 overcapture Flag
    • TIM1_FLAG_CC2OF: TIM1 Capture Compare 2 overcapture Flag
    • TIM1_FLAG_CC3OF: TIM1 Capture Compare 3 overcapture Flag
    • TIM1_FLAG_CC4OF: TIM1 Capture Compare 4 overcapture Flag
    دستور برای پاک کردن پرچم وقفه هستش
    TIM1_ClearITPendingBit(TIM1_IT_UPDATE);
    من یک برنامه میذارم تا بهتر متوجه بشید عملکرد وقفه رو


    تصاوير کوچک فايل پيوست تصاوير کوچک فايل پيوست برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: 2014-12-20_16-26-00.jpg
مشاهده: 934
حجم: 89.5 کیلو بایت  
    فايل هاي پيوست شده فايل هاي پيوست شده
    • نوع فایل: rar User.rar (4.3 کیلو بایت, 163 نمايش)
    ویرایش توسط sadmonew : 21-12-2014 در ساعت 12:36

  39. کاربران : 10 تشکر کرده اند از شما hadiabdi برای ارسال این پست سودمند:


صفحه 1 از 6 123456 آخرینآخرین

موضوعات مشابه

  1. [خبر] کامپایلر برای میکروهای stm8
    توسط sadmonew در انجمن stm32
    پاسخ: 55
    آخرين نوشته: 20-03-2017, 12:19
  2. St-link/v2 یک دیباگر اوریجینال ارزان برای stm32,stm8
    توسط stm32z در انجمن میکرو کنترلر های 32 بیتی(arm)
    پاسخ: 18
    آخرين نوشته: 15-12-2015, 08:37
  3. [سوال] جزوه آموزشی برد آموزشی lpc1768
    توسط pooriya_nic18 در انجمن LPC series (NXP)
    پاسخ: 5
    آخرين نوشته: 07-12-2013, 14:49
  4. ثبت نام در مسابقات رباتیک وزارت آموزش و پرورش
    توسط elhghasemi در انجمن طراحی و ساخت و آزمایش مدارت الکترونیک
    پاسخ: 0
    آخرين نوشته: 03-08-2012, 21:14

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •