PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : اموزش میکرو stm8



hadiabdi
14-12-2014, 13:11
سلام دوستان اموزش stm8 به امید خدا کنار هم میخوام شروع کنیم در پله اول من برای شما دوستان ساختن پروژه رو میذارم
HADI ABDI STM8 - YouTube (You can see links before reply)
این هم فیلم یوتیوپ که خودم اپلود کردم که روش ساخت و شبیه سازی پروژه رو نشون میده
کامپایلر هم iar v2 هستش که تو سایت هست میتونید دانلود کنید
برای شما فایل پروژه هم قرار میدم
قسمت اول STM8 (You can see links before reply)

sadmonew
14-12-2014, 16:44
سلام مهندس:hi:
دستت درد نکنه.:0013: شما ادامه بدین اعضای انجمن خصوصا" مدیران سایت ازتون حمایت میکنن(خودم یکیشونم).
جای این بحث خالی بود. مخصوصا در مقایسه با میکروهای همرده خودش قابل قیاس نیست(کارایی بالا و قیمت پایین میکرو)

hadiabdi
14-12-2014, 17:57
در گام اول بعد از ساخت پروژه کلاک مستر شما 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
میتونید مستقیم از رجیسترها هم بارگزاری کنید
You can see links before reply

- - - Updated - - -

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

mzarkoob
14-12-2014, 17:59
سلام
مهندس غیر یوتیوپ جایی که فندق شکن نخواد میشه آپلود بفرمایید

کامپایلر هم iar v2 کجای سایت هست!؟

hadiabdi
14-12-2014, 18:21
You can see links before reply


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

bascom2
14-12-2014, 19:09
آپارات - سرویس اشتراک ویدیو (You can see links before reply)
اینجا اپلود کن

mzarkoob
14-12-2014, 19:40
این همون لینکیه که نمیشه ازش دانلود کرد و یه جای کار قطع میشه . سرعتشم کمه خیلی. اگه دانلود کردید می تونید آپلود کنید. من نسخه قبلیش تو این تاپیک (You can see links before reply)اپلود کردم

hadiabdi
14-12-2014, 21:34
من از همین سایت دانلود کردم مشکلی نداره فقط صبح ها سرعتش بیشتر مخصوصا 6 تا 9 صبح از سایت اصلی دانلود کنید من کرک گذاشتم

hadiabdi
14-12-2014, 22:27
این تیکه فیلم هم ادامه فیلم و اول
STM8 (You can see links before reply)

hamid27
15-12-2014, 10:31
عاقا به جایه تیکه تیکه گزاشتن یه فندوق شکن خوب بده بتونیم فیلم ها رو ببینیم ثواب دنیا و اخرت رو میبری :(

dostajn
15-12-2014, 13:12
سلام
شاید
Cosmic Software - Download (You can see links before reply)
بدرد دوستان بخوره!
البته پولیه ولی ظاهرا حالت رایگان تا 8 کیلوبایت و با ثبت نام تا 32 کیلو بایت رو می تونید استفاده کنید.
برای 32 کیلوبایت لینک زیر باید دانلود کنید و بعد نصب حتما با یه ایمیل معتبر لایسنس بگیرین
You can see links before reply

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

hadiabdi
15-12-2014, 14:01
سلام این هم یک قسمت دیگه پورت ها
این دستور هر پورت انتخاب شده ایی و به خال ریست بر میگردونه

GPIO_DeInit (GPIO_TypeDef *GPIOx)
این دستور هر پورتی که انتخاب کنید PullUp (You can see links before reply) میکنه هر پینی همه و...................حتی نیبلی

GPIO_ExternalPullUpConfig (You can see links before reply) (GPIO_TypeDef (You can see links before reply) *GPIOx, GPIO_Pin_TypeDef (You can see links before reply) GPIO_Pin, FunctionalState (You can see links before reply) NewState)
این دستور تنظیمات پایه ها پورت و انجام میده

GPIO_Init (You can see links before reply) (GPIO_TypeDef (You can see links before reply) *GPIOx, GPIO_Pin_TypeDef (You can see links before reply) GPIO_Pin, GPIO_Mode_TypeDef (You can see links before reply) 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);
You can see links before reply

hadiabdi
15-12-2014, 21:13
حالا میرسیم به بحث شیرین انالوگ تو دیجیتال
اول این تصویر و نگاه کنید
تا بفهمید چطوری کار میکنه این مد اسکنش خیلی باحاله تمام ورودی ها رو به نوبت اسکن میکنه بعدش بافرش که پرشد پرچم وقفه اش عمل میکنه
You can see links before reply

hadiabdi
15-12-2014, 21:41
این قسمت جالب ناظر ولتاژ adc هستش که شمابراش استانه بالا و پایین تعریف میکنید که ولتاژ باید بین این دوتا استانه باشه اگر نباشه پرچم وقفه ناظر تون یا همون (واچ داگ ) فعال میکنه

You can see links before reply

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);uart 2_hadi_confing();
ADC1_DeInit();
ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS,ADC1_CHAN NEL_0,ADC1_PRESSEL_FCPU_D2,
ADC1_EXTTRIG_TIM,DISABLE,ADC1_ALIGN_RIGHT,ADC1_SCH MITTTRIG_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
16-12-2014, 11:05
برای تبدیل به نوع قرار گرفتن بیت های تبدیل شده باشید که به حالت چپ و راست داره چینش بیت ها



You can see links before reply

hadiabdi
16-12-2014, 20:07
قسمت پورت سریال این میکرو با 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);

hadiabdi
16-12-2014, 23:15
من از اقای زرکوب عزیز خواهش میکنم اموزش ها ارم ها رو با این کامپایلر انجام بده به نظر من این کامپایلر بسیار کامل و دقیق درست شده

hadiabdi
17-12-2014, 10:13
حالا بریم سراغ مد 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);

hadiabdi
20-12-2014, 13:31
قسمت پیچیده تایمر که من در حد فهمم از دیتاشیت برای شما دوستان توضیح میدم این توضیحات در مورد تایمر 1 هست که رجیسترهای بسیار زیادی و امکانات خوبی داره این تایمر 16 بیتی هستش که با کلاک خارجی و کلاک سیستم و ورودی های کانال های مقایسه کننده و انبار کننده کلاک میخوره و کانترش به 3 صورت کار میکنه از 0 تا 65535 و حالت دوم از 65535 تا 0 و حالت سوم چینش از وسط هستش که وقتی به نقطه وسط میرسه شروع به کم شدن میکنه شمای کلی تایمر 1
You can see links before reply
یک قسمت اصلی دار به نام تامیر بیس که کارش شمارش 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. تقسیم بندی هست برای بدست اوردن زمان دلخواه که ازفرمولی که دادم استفاده میکنید
عکس حالت هایی و که میشه با این تایمر ایجاد کرد و میذارم
You can see links before reply

نمونه دستور


TIM1_TimeBaseInit(0, TIM1_COUNTERMODE_UP, 4095, 0);
این دستور تایمر و روشن میکنه

TIM1_Cmd(ENABLE);
ادامه اش تا بعد
.................................................

hadiabdi
20-12-2014, 17:24
استفاده از وقفه ها در تایمر ، این تایمر وقفه سرزیر و پاریز توسط نرمافزار رویداد ایجاد کردن کپچر و................................ داره
برای استفاده از این وقفه ها باید از هدر فایل 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);
من یک برنامه میذارم تا بهتر متوجه بشید عملکرد وقفه رو


You can see links before reply

hadiabdi
20-12-2014, 17:52
برای ساختن pwm‌ از چهار کانال مقایسه و 3 کانال مکمل استفاده کرد که مجموع 7 کانال خروجی pwm هستش ولی برای pwm دلخواه از 4 کانال میشود استفاده کرد
در اول کار شما با دستور تایمر بیس اون و مقدار دهی میکنید مثل کد پایین

TIM1_TimeBaseInit(0, TIM1_COUNTERMODE_UP, 4095, 0);
در این دستور کانتر شما به صورت افزایشی و در پریود 4096 بارگزاری شده
حالا ما با دستور

TIM1_OC1Init(TIM1_OCMODE_PWM2, TIM1_OUTPUTSTATE_ENABLE, TIM1_OUTPUTNSTATE_ENABLE, 2047, TIM1_OCPOLARITY_LOW, TIM1_OCNPOLARITY_HIGH, TIM1_OCIDLESTATE_RESET,
TIM1_OCNIDLESTATE_RESET);
کانال مقایسه و کانال مکمل و به صورت خروجی در میاریم که مثلا در دستور بالا اگر پهنای پالس 1 ما تا مقدار 2048 هستش که دستور در خروجی TIME_CH1 ,TIM1_CHN ایجاد میشه و به این صورت ما موج pwm ساختیم
با کد پایین میتونید مقدار کانال 1 تایمر 1 و هر مقداری کمتر از مقدار سکل برگذاری کنید تا موج با پهنای مختلف ببنید در خروجی کانال یک

while(i<4095){
TIM1_SetCompare1(i);
Delay(500);
i++;
}
i=0;

در اخر من فایل مثال و قرار میدم تا بیشتر درک کنید

cmuiran
26-12-2014, 10:20
سلام
اقا کسی هست نسخه درست و درمون iar v2 داشته باشه
لطفا یک لینک بده ما دانلود کنیم

ali_rostami_7
28-12-2014, 14:53
سلام من قبلا که هرچی گشتم کرک درستی واسش پیدا نکردم .اما توصیه میکنم تو سایت iar از خودش دانلود کنی .محدودیت کمپایل واسه بیشتر از 8کیلو داره که اگر از
مینی برد STM8S_MiniKit STM8S003F3P6 (You can see links before reply)
استفاده میکنید جای نگرانی نیست چون بیشتر از 8 کیلو فلش نداره .:wink:

hadiabdi
28-12-2014, 16:15
از توی خود انجمن دانلود کنید کرک اشم هست مشکلی هم نداره بدون محدودیت ادرس و قبلا دادم

cmuiran
29-12-2014, 20:35
مهندس من دانلود کردم مشکل داشت
برای همین این پست زدم
لینک جدید دارین ؟

Doloop
30-12-2014, 02:40
اگه نرم افزار رو دانلود کردین و مشکل فقط کرکش هست من این کرک رو دارم ببینید جواب میده ...:wink:

دانلود (You can see links before reply)

موفق باشید :0013:

dostajn
30-12-2014, 14:53
سلام
چرا از sdcc و cosmic استفاده نمی کنید؟
اولی رایگان و دومی با لایسنس 1 ساله تا 32 کیلو رایگان
البته RAISONANCE هم هست که تا 32 کیلو بایت ظاهرا میشه استفاده کرد البته اینو من خودم تست نکردم

cmuiran
31-12-2014, 15:22
اقا این eeprom میکرو stm8 کسی راه انداخته ؟

hadiabdi
31-12-2014, 18:23
سلام کاری نداره ادرسش از 40000 هگز شروع میشه بعد توش بنویسید الان وقت ندارم بعدا در موردش توضیح میدم

ahapour
01-01-2015, 12:54
با سلام

دوستان ضمن خسته نباشید و تشکر من الان این تاپیک را دیدم و خیلی خوشم آمد چند تا سوال داشتم امیدوارم اگر مقدور باشد راهنمایی بفرمایید

1- آیا میتوان با Jlink فروشگاه که قبلا خریدیم این STM8 را هم پروگرام کرد اگر مثبت بود چگونه ؟
2- آیا از دوستان کسی اطلاعات کلی در مورد امکانات شماره های مختلف این میکرو کنترلر ها (مثل تعداد و جندبیتی بودن تایمر , تعداد UART , I2C , مقدار ّFlash , Ram , EEpram و .....) دارد ؟

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

rozeh
01-01-2015, 13:23
با سلام

دوستان ضمن خسته نباشید و تشکر من الان این تاپیک را دیدم و خیلی خوشم آمد چند تا سوال داشتم امیدوارم اگر مقدور باشد راهنمایی بفرمایید

1- آیا میتوان با Jlink فروشگاه که قبلا خریدیم این STM8 را هم پروگرام کرد اگر مثبت بود چگونه ؟
2- آیا از دوستان کسی اطلاعات کلی در مورد امکانات شماره های مختلف این میکرو کنترلر ها (مثل تعداد و جندبیتی بودن تایمر , تعداد UART , I2C , مقدار ّFlash , Ram , EEpram و .....) دارد ؟

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

1- نه
2- لازم شد توی یه تاپیک مطرح میکنم.

hadiabdi
01-01-2015, 16:14
سلام بستگی به نوع استفاده شما داره از پروگرام st link استفاده کنید همه چیز داره مهمترین چیز قیمت پایینش هستش با کلاک داخلی 16 مگ و کلی امکانات خوب وتایمر های قدرتمند

ahapour
01-01-2015, 19:57
با سلام

دوستان ضمن خسته نباشید و تشکر من الان این تاپیک را دیدم و خیلی خوشم آمد چند تا سوال داشتم امیدوارم اگر مقدور باشد راهنمایی بفرمایید

1- آیا میتوان با Jlink فروشگاه که قبلا خریدیم این STM8 را هم پروگرام کرد اگر مثبت بود چگونه ؟
2- آیا از دوستان کسی اطلاعات کلی در مورد امکانات شماره های مختلف این میکرو کنترلر ها (مثل تعداد و جندبیتی بودن تایمر , تعداد UART , I2C , مقدار ّFlash , Ram , EEpram و .....) دارد ؟

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


باسلام

دیدم دوستان استقبال نکردند لذا با سرچ کردن توانستم چند عکس خوب پیدا کنم گفتم اینجا بگذارم

8394

8395

8396

همچنین مطالبی را که توسط دوستان ارایه شده بود را در یک pdf جمع کردم که امیدوارم مفید باشد
آموزش میکروکنترلر های سری STM8 (You can see links before reply D8%B1%D9%88_stm8.zip.html)

hadiabdi
02-01-2015, 21:03
سرم خلوت بشه چند تا گزینه دیگه هم براتون میذارم که بحث و ببندیم دارم کارای خوبی درموردش انجام می دم من دارم روی stm کار میکنم امیدوارم تو صنعت جواب بده

cmuiran
04-01-2015, 13:19
اقا این چرا لینک نمیشه ؟

sadmonew
04-01-2015, 17:48
اقا این چرا لینک نمیشه ؟
سلام مهندس غلامی عزیز
اون نکاتی که تو پیغام اومده را انجام دادین؟
آقا نرم افزار st-link بروز هست؟
حتما" آخرین ورژن را دانلود کنید.
تمام اتصالات مربوط به پایه های SWD یا j-tag درست وصل شدن؟

cmuiran
04-01-2015, 20:26
سلام داداش صادق گل :hi:
اره بند به بند انجامش دادم ولی مشکل رفع نشد میخواستم STM8 پروگرام کنم هی مینوشت STM32 هیچی دیگه اخر نرم افزار عوض کردم از نرم افزار STVP استفاده کردم
اینم محیطش
یک فایل اموزشی هم داره بدک نیست ببینین
program stm8 based boards - YouTube (You can see links before reply)

cmuiran
05-01-2015, 15:17
اقا بعد از روزها تلاش بلاخره یک کرک خوب پیدا کردم :mrgreen:
براتون میزارم استفاده کنین
توضیحات توی نوت نوشته شده

cmuiran
08-01-2015, 13:46
سلام
دوستان فلسفه این error چییه ؟ :018:


Fatal Error[Pe035]: #error directive: "Please select first the target STM8S/A device used in your application (in stm8s.h file)" E:\Miran Sanat\STM8\PROJECT 103K3\STM8S\Libraries\STM8S Driver\inc\stm8s.h 74




تمام کتابخونه هارو مشکل گرفته !!!
تو عکس مشخصه

Doloop
09-01-2015, 02:50
سلام ج...

این خطا دقیقا مشابه با خطای STM32 هست

میگه باید بری توی هدر مربوطه stm8s.h یه قسمت هست مربوط میشه به نوع میکرو که کامنت گذاشته شده هست و شما باید اون کامنت خطی رو که مربوط به میکروی شماست رو بردارید

دقیقا این قسمت هست:






/* Uncomment the line below according to the target STM8S or STM8A device used in your


application. */






/* #define STM8S208 */ /*!< STM8S High density devices with CAN */


/* #define STM8S207 */ /*!< STM8S High density devices without CAN */


/* #define STM8S007 */ /*!< STM8S Value Line High density devices */


/* #define STM8AF52Ax */ /*!< STM8A High density devices with CAN */


/* #define STM8AF62Ax */ /*!< STM8A High density devices without CAN */


#define STM8S105 /*!< STM8S Medium density devices */


/* #define STM8S005 */ /*!< STM8S Value Line Medium density devices */


/* #define STM8AF626x */ /*!< STM8A Medium density devices */


/* #define STM8S103 */ /*!< STM8S Low density devices */


/* #define STM8S003 */ /*!< STM8S Value Line Low density devices */


/* #define STM8S903 */ /*!< STM8S Low density devices */









موفق باشی ج...

cmuiran
09-01-2015, 10:35
سلام مهندس :hi:
داداش روی error زدم
اینو برام اورد نمیتونم روی کامنت خاصی کلید کنم
سر در نمیارم

مهندس این فایل پروژمه یک نگاه بندازی ممنون میشم
STM8S (You can see links before reply)

cmuiran
10-01-2015, 10:07
سلام دوستان
اقا مشکلی که پیش اومده بود حل شد
فقط کافی بود تو هدر فایل stm8.h اسم میکرو مورد نظر وارد میکردیم
براتون عکس گرفتم کسی مثل ما تازه کار بود دیگه درگیر نشه :0013:

cmuiran
12-01-2015, 12:31
سلام
اقا این مدل STM8S003F3P6 کسی دیتاشیت کاملتر نداره !!!!
ظاهرا نویسندش خلاصه نویسی کرده :mrgreen:
میخوام ارتباط سریال و مبدل انالوگ راه بندازم پیرم کرده :(
کسی نمونه سورس داشت بده ممون میشم

cmuiran
12-01-2015, 13:05
دوستان یک سایتی پیدا کردم یک مقدار درست و حسابی تر توضیح داده شاید به کارتون بیاد
You can see links before reply (You can see links before reply)

آقا یک چیزی دقت کردم اینه
خودم میپرسم
خودمم جواب میدم :mrgreen:

بچه ها کم پیدایین کجایین دلمون براتون تنگ شد lov:

rozeh
12-01-2015, 17:42
سلام
اقا این مدل STM8S003F3P6 کسی دیتاشیت کاملتر نداره !!!!
ظاهرا نویسندش خلاصه نویسی کرده :mrgreen:
میخوام ارتباط سریال و مبدل انالوگ راه بندازم پیرم کرده :(
کسی نمونه سورس داشت بده ممون میشم

شعار همیشگی من اینه:
"اول بدون چی خریدی بعد شروع کن!"
اگه ازش پیروی کنی کمتر اذیت میشی.
شما این صفحه رو نگاه کن:
You can see links before reply
تب All رو ببین! دیتاشیت که قرار نیست چیزی بگه. شما Reference Manual و User Manual رو بگیری دیگه چیزی لازم نیست. همچنین کتابخانه شرکت ST برای این سری STM8S/A Standard peripheral library (You can see links before reply) رو داشته باشی دیگه چی می خوای؟(احتمالا پر از مثال هم هست. به کدها هم نگاه کنی همه چیز دستت میاد) توی اون صفحه واقعا اینقده منابع و اطلاعات زیاده که گفتن نداره. از برنامه و کتابخانه بگیر تا نکات کاربردی و...
واقعا ST از این لحاظ حرف نداره.
شاید بهتر باشه به جای این تاپیک، کویر یه بخش واسه STM8 ایجاد کنه و توی اون بخش شروع کنید به کار.
موفق باشید.

cmuiran
13-01-2015, 12:55
سلام
تشکر بابت راهنماییی جامع و کاملتون

Shapour_Ardebil
18-01-2015, 12:04
با سلام

من يک عکس ميگذارم که همه چيز را در مورد نامگذاري ميکروکنترلر هاي stm گفته


You can see links before reply

avrpic
22-01-2015, 20:50
با سلام به همه ی دوستان

دوستان من تازه میخوام با کامپایلر iar و stm8 هشت برنامه بنویسم البته با stm32 و keil هم دارم کار می کنم ولی مشکل چندانی ندارم.
من توی تولید پروژه با iar و stm8 مشکل دارم تاپیک رو خوندم ولی بازم نتونستم پروزه رو درست تعریف کنم.
یعنی زمانی که توابع کتابخونه ای ST رو میخوام با IAR کامپایل کنم همش به این توابع ایراد میگیره میشه لطف کنید از ابتدا تولید پروژه رو توضیح
بدید. توی اون ویدیو هم که دوست خوبمون زحمتشو کشیدند این طور که من فهمیدم یه پروژه که توسط ST نوشته شده رو تغییراتی روش اعمال
میکنند به همین دلیل من درست متوجه نشدم.

راستی دوستان این کامپایلر IAR درصد کد کامپایل شده رو چه جوری نشون میده میشه توضیح بدید. با تشکر.

bascom2
22-01-2015, 22:31
سلام
من هم مدتهاست با iar کار می کنم این سوال برای من هم پیش اومده که درصد های اشغال شده از ram و flash میکرو را بعد از کامپایل در iar چگونه می توان متوجه شد اگر کسی بلد هست لطف کنه و ما را بی نصیب نگذاره
موفق باشید

saeedmo
21-02-2015, 19:08
سلام ببخشید کسی می دونه این پیغاما معنیش چیه وقتی ی متغییر تو eeprom تعریف میکنم این خطاها رو میده
Error[Li005]: no definition for "__eeprom_program_byte" [referenced from eeprom_util.o(dlstm8smn.a)]
Error[Li005]: no definition for "__eeprom_wait_for_last_operation" [referenced from eeprom_util.o(dlstm8smn.a)]
Error[Li005]: no definition for "__eeprom_program_long" [referenced from eeprom_util.o(dlstm8smn.a)]
_____

- - - Updated - - -

سلام ببخشید کسی می دونه این پیغاما معنیش چیه وقتی ی متغییر تو eeprom تعریف میکنم این خطاها رو میده
Error[Li005]: no definition for "__eeprom_program_byte" [referenced from eeprom_util.o(dlstm8smn.a)]
Error[Li005]: no definition for "__eeprom_wait_for_last_operation" [referenced from eeprom_util.o(dlstm8smn.a)]
Error[Li005]: no definition for "__eeprom_program_long" [referenced from eeprom_util.o(dlstm8smn.a)]
_____

dostajn
22-02-2015, 09:30
سلام
Forum - IAR Kickstart STM8L05 EEPROM - STMicroelectronics
(You can see links before reply fpublic%2fSTe2ecommunities%2fmcu%2fLists%2fstm81%2 fIAR%20Kickstart%20STM8L05%20EEPROM&FolderCTID=0x01200200770978C69A1141439FE559EB459D7 580001E3853D9DB932A46A3FE4CD15CAB46FB&currentviews=276)

--
Extremely unlikely to be from IAR! IAR only provide the compiler and standard libraries (ed stdio.h).

You need to get these libraries from ST

saeedmo
15-03-2015, 13:09
ببخشید میشه یه مثال بزنید چطوری میشه از چند کانال adc استفاده کرد.این scan mode دقیقا چیکار میکنه؟؟؟؟؟؟ من وقتی از یه کانال میخونم درسته دیتا ولی وقتی میخوام از دو کانال بخونم مشکل دارم عدد دیتا درست نیست.

saeedmo
17-03-2015, 12:28
پورت b دز mini stm105 اشتباه lable گذاری شده حواستون باشه

blue_pulse
31-03-2015, 13:50
سلام

دوستان کسی میتونه کمک کنه که چطوری باید در iar هدر اضافه کرد و چه هدر های باید اضافه کرد

کلا با ایجاد پروژه در iar مشکل دارم

برای stm8 دانلود کردم iar رو.
تشکر./

behador
09-04-2015, 00:20
سلام
من تازه با این میکرو آشنا شدم
دارم با اسمبلی STDV کار میکنم و یه minikit stm8s003f3p فروشگاه به دستم رسیده باید هرتور شده راهش بندازم کمک میخواستم
datasheet
programing manuals
Refrence manuals
اینا رو دانلود کردم خوندم و کمی با خانواده stm8s اشنا شدم
این برنامه رو نوشتم با stlinkv2 ریختمش رو میکرو ولی کار نمیکنه
نمیدونم چه مشکلی هست لطفا راهنماییم کنید :(



stm8/


#include "mapping.inc"


segment 'rom'


start
bset $5011,#3
best $500f,#3

end

saeedmo
15-04-2015, 00:17
حالا چرا اسمبلی؟؟

microware
13-06-2015, 14:28
سلام دوستان
کسی تا حالا STM8S003F3P6 (You can see links before reply 8%B1%D9%84%D8%B1-stm8/1200233--stm8s003f3p6-.html) رو راه اندازی کرده؟
من که فقط GPIO رو راه انداختم
خروجی PWM راه نمیوفته. cry::

rezamahzoonie
20-06-2015, 17:58
سلام iar ورژن 1.4 بالاتر پیدا نکردم توی لینک اول گفتید ورژن 2 لطفا لینک بدید ممنون

sadmonew
26-06-2015, 18:22
سلام دوستان
جدا" که میکروی خوش دستی است. جایگزین AVR کردم.
آخرین ورژن IAR مخصوص میکروی STM8 را از اینجا (You can see links before reply) دانلود کنید.
مهمترین ویژگی هاش:
1-دارای پین های زیاد
2-فضای زیاد فلش و رم
3-قیمت بسیار مناسب

mzarkoob
26-06-2015, 19:51
سلام
این آخرینش که گفتید الان ورژن چنده؟
درست کرک میشه با این کرک؟

sadmonew
27-06-2015, 01:21
سلام
رو سیستمم نصبش کردم به راحتی هم کرک شد.
دارم ازش استفاده میکنم.
You can see links before reply

amanver
30-06-2015, 18:24
زحمت این لینک رو اقای عبدی کشیدن برای دانلود کامپایلر iar.
تو سایت نحوه کرک رو هم توضیح داده.
با تشکر از دیگر دوستانی ک لینک های دیگه ای برای کامپایلر گذاشتن.
لینک دانلود کامپایلر iar :

شما برای iar جستجو کردید - دانلود رایگان نرم افزار (You can see links before reply)

بعد چن تا سوال :

1- قضیه این دیتاشیت چیه؟ لینک دانلودشو میشه قرار بدید.
2- این stm8 , 32 برند هستن یا خود میکرو اند؟ اگه یه دیدی بدید ممنون میشم.(بنده با pic کار میکردم،تازه اومدم میخام با arm کار کنم.)
3- پرژه اولی ک طبق فیلم جلو میرفتیم برای بنده چن تا گزینه رو نداشت،ب همین دلیل نتونستم کاملش کنم. مخصوصا از اونجا ک edit configuration رو انتخاب کردیم،اونی ک تو فیلم بود یه گزینه داشت و یکی جدید اضافه شد. برامن 5 یا 6 تا داشت.....
4- این برنامه ها خروجی هگز دارن و میشه شبیه سازی کرد؟ قضیه debug چیه؟
ببخشید اصن دیدی نسبت ب کار ندارم.
ممنون

behador
21-08-2015, 09:15
اسمبلی انتخاب کرده بودم چون آسون تر بود
(سعی داشتم یه برنامه اسمبلر آزمایشی در لینوکس را برای stm8 امتحان کنم)
کاش خود کویرالکترونیک لینک این فایلها رو توی فروشگاه بزنه که مشتری ها راحت دانلود کنن

mzarkoob
29-09-2015, 21:53
سلام
در میکروی stm8s003f3 (You can see links before reply) برای استفاده از زیرروال وقفه از چه نامی بایستی استفاده شود؟
در هدرش اینها را تعریف کرده:



* Interrupt vector numbers
*-----------------------------------------------------------------------*/
#define AWU_vector 0x03
#define CLK_CSS_vector 0x04
#define CLK_SWITCH_vector 0x04
#define EXTI0_vector 0x05
#define EXTI1_vector 0x06
#define EXTI2_vector 0x07
#define EXTI3_vector 0x08

#define EXTI4_vector 0x09
با رجیستر سریال راه اندازی کردم. با stm32 تفاوت ها بسیاره. کلا مثالی نداره. کامپایلرشم که متفاوته
در stm32 زیرروال وقفه این بود :

void EXTI0_IRQHandler(void)

mzarkoob
30-09-2015, 17:25
stm کارا به خواب زمستانی رفتند در پاییز :mrgreen:
اینه :

__interrupt voidEXTI_PORTD_IRQHandler(void)

mzarkoob
07-10-2015, 19:11
در کامپایلر iar از توابع stdio مثل printf برای نمایش روی پورت سریال استفاده کرده اید؟
در کیل به سادگی این کار انجام می شد:

int fputc(int ch, FILE *f) { return (SendChar(ch));
}
که این در یک فایل واسط به نام retarget بود. ولی در iar کار نمی کنه. اول که میگه FILE نمی شناسم. بعدش که

typedef struct __FILE FILE;
اضافه می کنم بشناسه کار نمی کنه. ظاهرا فایل stdio.h آن با کیل فرق داره

behador
09-10-2015, 21:13
برای دیباگ کردن چکار میکنید؟
یعنی علاوه بر اینکه stlink وصله باید به پورت سریال هم وصلش کرد؟
یا اینکه خود stlink هم یه ترمینال برای دیباگ داره؟

mzarkoob
10-10-2015, 10:54
برای دیباگ که یک مثلث سبز داره iar هم دانلود هم دیباگ. پروگرامر stlink هم وصله به برد
پایه خروجی سریال هم با یه مبدل یو اس بی به سریال وصل می کنیم pc و با هایپرترمینال مشاهده می کنیم. همین !

mzarkoob
13-10-2015, 22:09
در میکروی
stm8s003f3 (You can see links before reply) سه تا تایمر داره. تایمر 1 و 2 و 4



16bit advanced control timer : TIM1
16bit general purpose timers : TIM2
8bit basic timer : TIM4
تایمر 2 کار می کنه ولی تایمر 1 و 4 با تنظیمات مشابه درست کار نمی کنه. میره در زیروال وقفه انگار در نمیاد و همین طور پایه ای که تنظیم شده خروجی ست ریست می کنه! با توجه به اینکه پرچم وقفه هم در زیرال وقفه پاک میشه.
کسی استفاده کرده ببینم ایراد سخت افزاریه یا نرم افزاری؟
نمی دونم آقای عبدی این برنامه تایمر که گذاشتند تست هم کردند؟

bascom2
14-10-2015, 10:15
با سلام
من وقفه تایمر 2 و 4 را با cmsis راه اندازی کردم . مطئن باشید کار میکنه. مثال تایمر 4 هم دقیقا اونی را که داخل فولد std_library هست استفاده کردم.من یک مشکل با وقفه adc دارم که با در هر بار وقفه باید اون را دوباره استارت کنیم.

mzarkoob
14-10-2015, 10:26
مسئله اینه که من با رجیستر تنظیمات لازم را انجام داده ام . حالا باید ببینم این کتابخانه ها چه تنظیمات اضافی انجام داده است. بعید می دانم تنظیم اضافه تری بخواهد. چون مثل هم هستند، یکم از تایمر 2 پیشرفته تر یه کم پس رفته تر!
بله adc همین طوره اینجا ظاهرا. در مرحله اول اصلا بدون وقفه کار نمی کرد در حالی که میکروهای دیگه بدون وقفه میشد یک راه اندازی اولیه با چک کردن بیت اتمام تبدیل با while داشت.

mfazl22
25-10-2015, 21:18
سلام
شما میتونید یه فیلم آموزشی فارسی بزارید باکلام پولشو میدیم

blue_pulse
26-10-2015, 00:44
در میکروی stm8s003f3 (You can see links before reply) سه تا تایمر داره. تایمر 1 و 2 و 4
16bit advanced control timer : TIM116bit general purpose timers : TIM28bit basic timer : TIM4تایمر 2 کار می کنه ولی تایمر 1 و 4 با تنظیمات مشابه درست کار نمی کنه. میره در زیروال وقفه انگار در نمیاد و همین طور پایه ای که تنظیم شده خروجی ست ریست می کنه! با توجه به اینکه پرچم وقفه هم در زیرال وقفه پاک میشه.کسی استفاده کرده ببینم ایراد سخت افزاریه یا نرم افزاری؟نمی دونم آقای عبدی این برنامه تایمر که گذاشتند تست هم کردند؟این خانواده s003f3100 بار میشه پروگرامش کرد؟

mzarkoob
26-10-2015, 09:29
نشمردم تعداد دفعاتی که تا الان این میکرو را پروگرام کردم ولی فکر کنم بیشتر از صد تا شده

bascom2
27-10-2015, 19:15
سلام
کسی وقفه های خارجی را راه اندازی کرده
من به صورت زیر تنظیم کردم. (روی لبه پایین رونده). بدون پالس مرتب میپره تو وقفه!!!!!!!



//PIR==PD.3 INPUT INTTRRUPT WITH PULL-UP
GPIOD->DDR&=~(1<<3);
GPIOD->CR1|=(1<<3);
GPIOD->CR2|=(1<<3);

EXTI->CR1|=0X80; //PORTD IS EXTERNAL INTTRUPT AND FLALING EADGE ONLY SENSIVITY

INTERRUPT_HANDLER(EXTI_PORTD_IRQHandler, 6)
{

char buffer[5];

if(( GPIOD->IDR & 0x08)==0) { //if pd.3==0


eeprom_read(34,buffer,1);
if (strstr(buffer,"1")){ //if :securtiy:on
sprintf(Buffer_I2C_Rx,"alertpir:on"); //send pir alert to esp8266
}
else{
memset(buffer, '\0', sizeof(buffer));
eeprom_read(18,buffer,3);
pir_delay=atoi(buffer);
if(pir_delay!=0){
TIM4->CR1|= TIM4_CR1_ARPE | TIM4_CR1_URS |TIM4_CR1_CEN; // enable timer
TIM4->IER|= TIM4_IER_UIE; // enable TIM4 interrupt
}
}

}
}



از iar دارم استفاده می کنم.

mzarkoob
29-10-2015, 20:57
یک برنامه بنویسید که فقط تنظیمات وقفه باشه و یک led که تا وقفه اومد پایه تاگل بشه. این برنامه همه چی توش هست
تنظیمات GPIO برای پایه مربوطه را چک کنید درست باشد. ورودی باید باشه و floating

majidnabi1
27-11-2015, 12:13
با سلام خدمت همه دوستان

- - - Updated - - -

من با stm8s003f3p6 کار کردم این میکرو رو بدون برد خریداری کردم و روی برد تبدیل SSOP نصب کردم و برای پروگرام کردنش دچار مشکل شدم با پروگرامر stlink بعد از کلی تحقیق متوجه شدم که یک نکته مهمبرای پروگرام کردناین میکرو وجود داره اون هم پایه Vcap هست که حتما باید با یک خازن نانو فارادی به زمین وصل بشه

- - - Updated - - -

خوب نکته بعد در این میکرو رجیستر های موجوددر iostm8s003f.h هست که قابلیت استفاده مستقیم و مقدار دهی مستقیم به تک تک پین ها را دارد

- - - Updated - - -

اگه دوستان مایل بودند بگن تا ادامه راه اندازی قسمت های مختلف این میکرو منظور stm8s003f3p6 رو بگم

- - - Updated - - -

یه سوال :
آیا کسی تونسته این میکرو رو به ال سی دی 2*16 وصل کنه و باهاش نمایش دیتا بده

sarbaz13
27-11-2015, 18:15
سلام
دست شما درد نکنه که تجربیاتتون رو در اختیار همه قرار دادین
شما شروع کنید به ادامه دادن بقیه قسمت ها و نکته های که باهاشون برخورد کردین
بعد من هم با شما هستم

majidnabi1
27-11-2015, 23:38
سلام خدمت مهندس قاسمی دوست عزیز
من مجید نبی از شهرستان آباده هستم الاندر مرکز رشد واحد های فناور مستقر هستم اگه معرفی کنید خوشحال میشم
درباره این میکرو همه اطلاعاتی که آقای مهندس عبدی گفتن کاملا درست اما یکم جسته و گریخته گفتن و به نظر من بهتره ریزتر و با جزییات بیشتر ادامه بدیم

اول اینکه این میکرو فقط با یک روش قبل پروگرام کردنه اونم یک سیمه یا SWIM هست که توی دیتاشیت گفته شده
و تنها یک پروگرامر فقط در دسترس ماست برای پروگرام کردن اون اون هم stlink هست که دونمونه 18000 تومانی و 59000 تومانی

اگه مثل من خود میکرو رو تهیه کردین که باید چهار سیم RESET SWIM GND VCC رو به میکرو متصل کنید و دقت کنید که حتما Vcap رو با خازن به VSSیا همون GND وصل کنید

ببخشید که غلط املایی دارم

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

که توی پست قبلی گفتم

erfan7213
02-12-2015, 20:21
سلام.فایلی که گذاشتید موقع باز کردن با iar خطا می دهد

mzarkoob
03-12-2015, 12:25
و تنها یک پروگرامر فقط در دسترس ماست برای پروگرام کردن اون اون هم stlink هست که دونمونه 18000 تومانی و 59000 تومانی
اگه مثل من خود میکرو رو تهیه کردین که باید چهار سیم RESET SWIM GND VCC رو به میکرو متصل کنید و دقت کنید که حتما Vcap رو با خازن به VSSیا همون GND وصل کنیدسلام
بله با دو پروگرامر
(You can see links before reply)
ST-LINK V2 ST LINK STLINK STM8 STM32 Programmer Emulator (You can see links before reply)
و

ST-LINK V2For STM8 STM32 Debugger ,Programmer, st link (You can see links before reply)

میشه پروگرام کرد فقط اون پروگرامر سفیده باید تغذیه برد جدا بهش بدی



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

mzarkoob
24-12-2015, 14:05
جالبه پورت سریال این میکرو با باودریت 115200 من ندیدم درست عمل کنه در حالی که با باودریت های دیگه درست کار میکرد. عدد محاسبه شده برای قرار دادن در رجیستر مربوطه (BRR1و BRR2) هم درست است و مطابق جدول Table 54 رفرنس منوآل است. از دوستان کسی تست داشته اینو؟

arn.hafez
04-01-2016, 18:55
سلام
بله بنده زیاد استفاده کردم و حتی بدون کریستال البته روی سری L جواب گرفتم
و روی سری معمولی بردم کریستال داشت و جواب هم داد فقط نکته ای که هست یه تفاوت بین سری L و سری معملوی (S) وجود داره اونم اینه که تو سری L کلاک سریال همون کلاک میکرو هست ولی تو سری معمولی کلاک سریال همیشه 16 مگ هست اینم تابع کانفیگ سریال واسه stm8s

void USARTConfig(uint32_t baud)


{
uint16_t BaudRate_Mantissa = 0;
/*Set the USART RX and USART TX at high level*/
GPIOD->DDR|=GPIO_PIN_5;
GPIOD->CR1|=(GPIO_PIN_5);
GPIOD->CR2|=(GPIO_PIN_5);
/* Enable USART clock */
CLK->PCKENR1|=CLK_PCKENR1_UART1;


/* USART configuration ------------------------------------------------------*/
/* USART configured as follow:
- BaudRate = 115200 baud
- Word Length = 8 Bits
- One Stop Bit
- Odd parity
- Receive and transmit enabled
*/
// Fmaster/Baudrate/* 16000000/2^(CLK->CKDIVR)*/
BaudRate_Mantissa = (uint32_t)( 16000000/baud);
/* Set the fraction of USARTDIV */
UART1->BRR2 = (uint8_t)((BaudRate_Mantissa >> (uint8_t)8) & (uint8_t)0xF0);
/* Set the MSB mantissa of USARTDIV */
UART1->BRR2 |= (uint8_t)(BaudRate_Mantissa & (uint8_t)0x0F);
/* Set the LSB mantissa of USARTDIV */
UART1->BRR1 = (uint8_t)(BaudRate_Mantissa >> (uint8_t)4);
UART1->CR2 |=(UART1_MODE_RX_ENABLE | UART1_MODE_TX_ENABLE);
/* Enable the USART R interrupt */
UART1->CR2|=0X20;

}

mzarkoob
04-01-2016, 20:32
بله تنظیمات در همین کلاک 16 مگ انجام شده و با همین کلاک در 9600 کار می کند در باودریت های دیگه هم درست کار می کنه و خروجی می بینیم ولی با این 115200 چه مشکلی داره نمی دونم. شاید در قراردادشون نبوده اینو ساپورت کنند ! :mrgreen:
شما با بدون کریستال تست کنید ببینید چی میشه

mzarkoob
27-01-2016, 12:53
از دوستان با این 128 کیلو ایتوپرام داخلی این میکرو stm8f003 کار کرده که درست کار کنه؟
منظور از درست کار کردن اینه که تغذیه قطع و وصل کنی دیتایی که ریختیم داخلش باقی مونده باشه

bascom2
27-01-2016, 16:39
سلام
من کار کردم . راخت جواب میده

mzarkoob
27-01-2016, 17:06
بله درست شد. 128 بایت آدرس شروع ذکر نشده بود از کجاست!

mzarkoob
27-01-2016, 21:46
امکانات وقفه خارجیش خیلی باحاله.
تو میکروهای lpc که از روی پرچم وقفه می توان لبه بالا رونده یا پایین رونده را تشخیص داد. همین طور در زیروال وقفه پرچم وقفه وقفه باید پاک شود.
این میکرو این من ندیدم با یه خلاقیتی باید تشخیص داد کدوم لبه هست تازه نیازم نیست پرچم وقفه ای در زیروال وقفه خارجی پاک شود! :mrgreen:

blue_pulse
06-02-2016, 02:10
سلام خدمت مهندس قاسمی دوست عزیز
من مجید نبی از شهرستان آباده هستم الاندر مرکز رشد واحد های فناور مستقر هستم اگه معرفی کنید خوشحال میشم
درباره این میکرو همه اطلاعاتی که آقای مهندس عبدی گفتن کاملا درست اما یکم جسته و گریخته گفتن و به نظر من بهتره ریزتر و با جزییات بیشتر ادامه بدیم

اول اینکه این میکرو فقط با یک روش قبل پروگرام کردنه اونم یک سیمه یا SWIM هست که توی دیتاشیت گفته شده
و تنها یک پروگرامر فقط در دسترس ماست برای پروگرام کردن اون اون هم stlink هست که دونمونه 18000 تومانی و 59000 تومانی

اگه مثل من خود میکرو رو تهیه کردین که باید چهار سیم RESET SWIM GND VCC رو به میکرو متصل کنید و دقت کنید که حتما Vcap رو با خازن به VSSیا همون GND وصل کنید

ببخشید که غلط املایی دارم

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

که توی پست قبلی گفتم

مقدار خازن؟
دوستان brown outهمیشه فعاله داخلش؟

vahidamin
08-02-2016, 13:34
سلام دوستان اموزش stm8 به امید خدا کنار هم میخوام شروع کنیم در پله اول من برای شما دوستان ساختن پروژه رو میذارم
HADI ABDI STM8 - YouTube (You can see links before reply)
این هم فیلم یوتیوپ که خودم اپلود کردم که روش ساخت و شبیه سازی پروژه رو نشون میده
کامپایلر هم iar v2 هستش که تو سایت هست میتونید دانلود کنید
برای شما فایل پروژه هم قرار میدم
قسمت اول STM8 (You can see links before reply)

سلام
من یه مشکلی برام پیش اومده و دقیق نمی دونم اشکال از کجاست. یک برنامه ساده ست کردن یک پین GPIO. برنامه هم به درستی روی میکرو با ST-link ریخته میشه و وریفای میده و گویا مشکلی نیست. اما کار نمی کنه. روی دوتا مدار امتحان کردم و جواب نگرفتم. از کریستال خارجی استفاده می کنم و اونم ست کردم بازهم موفق نشدم. کسی می دونه باید چی کار کرد. از دوستان کسی می تونه شمارشو بهم بده تا ازش بپرسم. می تونه اشکال از کامپایلر باشه که خوب کرک نشده. البته بگم برنامه به راحتی کامپایل می شه.

mzarkoob
08-02-2016, 14:08
سلام
ابتدا بدون کریستال که شاید ساده تر باشه تنظیمات برنامه انجام بدهید.
بعد می توانید از روی برد دیباگ کنید.
تنظیمات پایه ها باید درست باشه. خروجی و پول آپ

mzarkoob
15-02-2016, 18:49
از دوستان کسی این میکرو قفل کرده ؟ (Read-out protection)

vahidamin
17-02-2016, 09:37
نرم افزار iar که خودتون باهاش کار کردین و جواب گرفتین و کرکش سالمه رو می تونید به من برسونید. هزینه پستش رو من پرداخت می کنم.

mzarkoob
17-02-2016, 10:30
سلام
در سایتش هست چرا دانلود نمی کنید!؟
لایسنس محدود هم خود کمپانی میده. قبلا ذکر شده...

vahidamin
01-03-2016, 13:34
چه محدودیتی داره؟ حجم پروگرام کردن یا زمانی؟

- - - Updated - - -

و یک سوال دیگه آیا برای ست و یا ریست کردن یک بیت باید ریزه کاری خاصی رو رعایت کرد. من از stm32103 جواب گرفتم وای نمی دونم چرا این جواب نمی ده. آیا می تونید یک برنامه ساده برای ست کردن PB5 برام بنویسین که با یکی خودم چک کنم؟

blue_pulse
02-03-2016, 17:46
از دوستان کسی این میکرو قفل کرده ؟ (Read-out protection)

بله در قسمت option بایتها موجوده

mzarkoob
02-03-2016, 21:49
چه محدودیتی داره؟ حجم پروگرام کردن یا زمانی؟ یک لایسنس می تونید بگیرید با محدودیت
حجم پروگرام و یکی هم با محدودیت زمان یک ماهه
بله ممکنه بعضی قسمت های این میکرو تفاوت داشته باشه با stm32 و یکم قلق داشته باشه.

mobashery
05-04-2016, 18:33
به کمک این سایت خیلی راحت میتونید تمام اجزا میکرو stm8 راه بندازید
Silverlight Developer Silverlight Developer - var myWorld = new World( (You can see links before reply)

mzarkoob
06-04-2016, 12:56
این لینک که قبلا داده شده در فروم البته برای stm8 این میشه:
Silverlight Developer STM8 Archives - Silverlight Developer (You can see links before reply)

M.ABDOLLAHI
02-07-2016, 22:56
سلام بچه ها من برای این میکرو برنامه طولانی نوشتم اینو بدونید در عمل برنامه همیشه درست اجرا نمیشه قلق داره بعدش هم باید حواستون باشه بهینه سازی کد رت روی حداکثر نگذارید

M.ABDOLLAHI
20-07-2016, 16:04
سلام دوستان اقا من خودم اصلا پشیمون شدم اینهمه وقت گذاشتم stm8 کار کردم الان رفتم از جوان الکترونیک 20 پین ارم stm32 را خریدم 1780 تومان و 32 پینش را هم خریدم 2400 تومان دیوانه که نیستم میرم همون ارم کار میکنم هم اسونتره و هم امکاناتش بیشتره اصلا از اول اشتباه کردم شما وقتتون را پای stm8 تلف نکنید برید همون ارم کار کنید قیمتش همونه

mzarkoob
21-07-2016, 23:46
سلام
برای شرکتی ما با stm8 کاری تولیدی انجام دادیم میکروش عمده میگرفتند دانه ای 800 تومن میشد
حالا باز شما هر کدام ارزونتر بود بگیرید