痞酷網_PIGOO

 找回密碼
 立即註冊
!!! [系統偵測到廣告阻擋軟體] !!!

如果您覺得痞酷網對您有些許幫助,或者您認同痞酷網的理想,

那麼希望您將痞酷網設定為白名單.

並請在上論壇的時候,動動您的手指,用行動支持我們.

謝謝!
樓主: ysc

AVR與STM8 學習心得

  [複製鏈接]
發表於 2014-4-20 22:03:08 | 顯示全部樓層
xiaolaba 發表於 2014-4-20 08:10 PM static/image/common/back.gif
大大出點甚麼玩具來吧
數讀完就要練武了

X大:
    多學一種 MCU 用意在於 回收場可以多收一些東西來玩!! 這一顆有 GPIO所以方便使用!! 手上有幾片黑晶爐控制器,若能搞出個恆溫烙鐵來就爽呆了!! 其他 水族箱控制器 麵包發酵箱 孵蛋器... 有數位 類比的控制,應該花樣不少吧!!
發表於 2014-4-20 22:47:19 | 顯示全部樓層
本帖最後由 xiaolaba 於 2014-4-20 10:54 PM 編輯
antlu 發表於 2014-4-20 10:03 PM static/image/common/back.gif
X大:
    多學一種 MCU 用意在於 回收場可以多收一些東西來玩!! 這一顆有 GPIO所以方便使用!! 手上有幾片 ...


溫控作個簡單的ON/OFF就可以了
如果要準要快, PID也可以, 但是調定還是要有控制理論的基礎比較好
不然就很難成功.

真的有興趣作PID的, 用ARDUINO 跟這個玩一次, 應該很有入門的收穫
http://brettbeauregard.com/blog/ ... 9s-pid-sample-time/

評分

1

查看全部評分

發表於 2014-4-21 01:09:30 | 顯示全部樓層
xiaolaba 發表於 2014-4-20 10:47 PM static/image/common/back.gif
溫控作個簡單的ON/OFF就可以了
如果要準要快, PID也可以, 但是調定還是要有控制理論的基礎比較好
不然就 ...

X大:

   /*working variables*/
unsigned long lastTime;
double Input, Output, Setpoint;
double errSum, lastErr;
double kp, ki, kd;
int SampleTime = 1000; //1 sec
void Compute()
{
   unsigned long now = millis();
   int timeChange = (now - lastTime);
   if(timeChange>=SampleTime)
   {
      /*Compute all the working error variables*/
      double error = Setpoint - Input;
      errSum += error;
      double dErr = (error - lastErr);

      /*Compute PID Output*/
      Output = kp * error + ki * errSum + kd * dErr;

      /*Remember some variables for next time*/
      lastErr = error;
      lastTime = now;
   }
}

void SetTunings(double Kp, double Ki, double Kd)
{
  double SampleTimeInSec = ((double)SampleTime)/1000;
   kp = Kp;
   ki = Ki * SampleTimeInSec;
   kd = Kd / SampleTimeInSec;
}

void SetSampleTime(int NewSampleTime)
{
   if (NewSampleTime > 0)
   {
      double ratio  = (double)NewSampleTime
                      / (double)SampleTime;
      ki *= ratio;
      kd /= ratio;
      SampleTime = (unsigned long)NewSampleTime;
   }
}

其實最重要的是 "公式" 公式是關鍵!!
發表於 2014-4-21 10:36:15 | 顯示全部樓層
咋眼看, 像是 incremental pid
請問有 auto tunning 那部分嘛 嗎 ?
發表於 2014-4-21 14:47:01 | 顯示全部樓層
antlu 發表於 2014-4-21 01:09 AM static/image/common/back.gif
X大:

   /*working variables*/

jojoling & xiaolaba大:
   這程式不是我寫的,我還不太懂,但是我個人的感覺, PID 公式用C來寫比較方便,公式如何導出來我個人沒辦法,至於 AUTO TUNE 更是沒辦法,但是你說要非常精確其實也可以不太需要,以恆溫絡鐵來說,變化絡鐵頭的型式往往需要使用者個人的需求而調整,只要差異不太大應該不會有太大的影響,這個程式大家可以參考作為寫程式的"範本"!


發表於 2014-4-21 18:04:21 | 顯示全部樓層
antlu 發表於 2014-4-21 02:47 PM static/image/common/back.gif
jojoling & xiaolaba大:
   這程式不是我寫的,我還不太懂,但是我個人的感覺, PID 公式用C來寫比較方便,公 ...

JOJOLING大:
    很多人的 微控DIY 都是做時鐘,我也不能免俗,我的玩具有 倒數計時器 定時器(給風扇用) DS1302時鐘 GPS時鐘 GPS+1302時鐘 GPS+LCM時鐘 GPS點陣時鐘   小綠人GPS 時鐘 家訓時鐘 LCM12864+DS1302+溫度18B20 時鐘,後來老婆大人講話了(就不做時鐘了) 18B20溫度計 馬桶補水警報器 溫控絡鐵(R2R)  烤箱溫控(R2R) 後來使用 STM15F204EA有 AD轉換又做了 控溫烙鐵 數位電源供應(R2R) 數位電源供應(STM15F204EA) 數位電子負載 溫度表  四通道溫度表 音響溫控散熱 LCD溫度計 GPS超速警報 GPS速度位置顯示超速警報... 這就是一直以來的玩具.
   我的啟蒙老師是 LEGION大 作品是 螢幕信號產生器(目前還不懂它的原理),一路走來有許多先進幫忙解決問題,... 因為其他的玩具需要很多公式 計算 和技巧,所以都沒有深入(也不太敢去探討)就慢慢玩囉!!
發表於 2014-4-23 20:45:38 | 顯示全部樓層
ysc 發表於 2014-4-20 05:37 PM static/image/common/back.gif
應該是2本總價吧?
自學筆記台北的簡體書店是賣245元。
http://goods.ruten.com.tw/item/show?2140314154 ...

ysc大:
  這幾天看書發現一個疑問!!
請問 STM的 C 語言都是那麼長?

void CLK_Init(void)
{
CLK_DeInit();
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);//指令這麼長? 打錯一個字不就掛了!!
}

打錯一個字不就掛了!!
 樓主| 發表於 2014-4-23 21:43:36 | 顯示全部樓層
antlu 發表於 2014-4-23 08:45 PM static/image/common/back.gif
ysc大:
  這幾天看書發現一個疑問!!
請問 STM的 C 語言都是那麼長?

我現在只用組合語言,對 STM8 的 C 還沒研究,聽說很多人對ST原廠這個程式庫很不滿,戲稱之為「破庫」!
發表於 2014-4-23 23:34:34 | 顯示全部樓層
ysc 發表於 2014-4-23 09:43 PM static/image/common/back.gif
我現在只用組合語言,對 STM8 的 C 還沒研究,聽說很多人對ST原廠這個程式庫很不滿,戲稱之為「破庫」! ...

YSC大:
   難怪,我看了半天,可能是跟以前的環境 uVision 比還真不習慣!!
發表於 2014-4-24 00:23:51 | 顯示全部樓層
本帖最後由 jojoling 於 2014-4-24 02:33 AM 編輯
antlu 發表於 2014-4-21 06:04 PM static/image/common/back.gif
JOJOLING大:
    很多人的 微控DIY 都是做時鐘,我也不能免俗,我的玩具有 倒數計時器 定時器(給風扇用) DS ...


妳老婆不出聲,我看你會再做個大時鐘放在門口上面喔~

玩具
http://techorange.com/2014/02/14/what-is-arduino/
機器狗
四軸飛行器
光立方
七彩聖誕樹
機器人手臂
遙控車

哈哈,會怕玩具嗎?
發表於 2014-4-24 00:29:44 | 顯示全部樓層
antlu 發表於 2014-4-23 08:45 PM static/image/common/back.gif
ysc大:
  這幾天看書發現一個疑問!!
請問 STM的 C 語言都是那麼長?

以高階語言寫程式~這句不算長~
長的程式不代表不好~長的程式是把設計者的想法,完整的用人的語言在程式裏描述出來~
以這個例子比組語好太多了,雖然function 跟常數定義的不夠漂亮~
是你不習慣看幾十萬行至幾百萬行的程式~
不過這些程式技巧,在幾百行的程式也是很重要的~

發表於 2014-4-24 19:57:07 | 顯示全部樓層
本帖最後由 antlu 於 2014-4-24 07:58 PM 編輯
jojoling 發表於 2014-4-24 12:23 AM static/image/common/back.gif
妳老婆不出聲,我看你會再做個大時鐘放在門口上面喔~

玩具


jojoling大:
   我是把時鐘放在門口, 還掛著LED做的"信守承諾",至於大的時鐘就是小綠人的黃色倒數計時器弄兩個作成 GPS 時鐘則放在工作室. DSC07878.JPG

評分

1

查看全部評分

發表於 2014-4-24 20:53:36 | 顯示全部樓層
jojoling 發表於 2014-4-24 12:29 AM static/image/common/back.gif
以高階語言寫程式~這句不算長~
長的程式不代表不好~長的程式是把設計者的想法,完整的用人的語言在程式裏 ...

jojoling大:
   "長的程式是把設計者的想法,完整的用人的語言在程式裏 .." 這種理論是不錯,但是門檻會高一些,因為樣我這樣的人(健忘,見忘)不容易記東西,不知道它會不會有"提醒"的功能?
    這幾天看書想到要記這麼長的語言,越看越灰心,經過你這樣的提醒(用人的語言在程式裏..)倒是信心又恢復了一些!!
發表於 2014-4-24 21:08:25 | 顯示全部樓層
antlu 發表於 2014-4-24 07:57 PM static/image/common/back.gif
jojoling大:
   我是把時鐘放在門口, 還掛著LED做的"信守承諾",至於大的時鐘就是小綠人的黃色倒數計時器 ...

我是說你家大門.... 你在閃我你有個這麼大的工作室~~嗚嗚嗚~
發表於 2014-4-24 21:19:39 | 顯示全部樓層
jojoling 發表於 2014-4-24 09:08 PM static/image/common/back.gif
我是說你家大門.... 你在閃我你有個這麼大的工作室~~嗚嗚嗚~

JOJOLING大:
  在大的硬碟沒定時清理或是捨不得"丟"那永遠也不夠放!!
  我的 78L05 SMD8PIN包裝 約有 2000個,給你100個夠你用了吧! 哈哈哈!!
發表於 2014-4-24 21:24:39 | 顯示全部樓層
ysc 發表於 2014-4-9 09:43 PM static/image/common/back.gif
是的,這也是吸引我的原因之一,因為出社會第一個工作就是寫6502組合語言軟體。

STM8 CPU core源自於650 ...

YSC大:
   W65C02S8P 我有舊的20個要不要回味一下初戀的滋味!! 送給你!!
發表於 2014-4-24 21:25:34 | 顯示全部樓層
antlu 發表於 2014-4-24 09:19 PM static/image/common/back.gif
JOJOLING大:
  在大的硬碟沒定時清理或是捨不得"丟"那永遠也不夠放!!
  我的 78L05 SMD8PIN包裝 約有 200 ...

你閃我,到時後我就把我竹北的房子整間拿來當工作室~還分一般工作室,單晶片工作室,零件儲物間~玩具間~
儀器室.......
發表於 2014-4-24 21:30:09 | 顯示全部樓層
jojoling 發表於 2014-4-24 09:25 PM static/image/common/back.gif
你閃我,到時後我就把我竹北的房子整間拿來當工作室~還分一般工作室,單晶片工作室,零件儲物間~玩具間~
...

JOJOLING大:
  你住竹北? 那好說!!要零件直接過來拿就是了!!省得還要到郵局!!
  竹北房子"分房"好我用LED幫你做個匾額 "喬遷大喜"!! 或是"開張大吉"!!
發表於 2014-4-24 22:21:37 | 顯示全部樓層
antlu 發表於 2014-4-24 09:30 PM static/image/common/back.gif
JOJOLING大:
  你住竹北? 那好說!!要零件直接過來拿就是了!!省得還要到郵局!!
  竹北房子"分房"好我用LE ...

去年本來的一個計畫就是搬到竹北,做高鐵上班~
不過很多事盡在不言中~就不再有這個計畫了~
只不過房子都買好了~哈哈~

所以~~不要再給我LED的牌子了~
讓我的生活離開電子產品中吧~
最好是在山上啊~種種田啊~品品茶~最好了~
 樓主| 發表於 2014-4-24 22:27:38 | 顯示全部樓層
本帖最後由 ysc 於 2014-4-24 10:29 PM 編輯
antlu 發表於 2014-4-24 09:24 PM static/image/common/back.gif
YSC大:
   W65C02S8P 我有舊的20個要不要回味一下初戀的滋味!! 送給你!!


謝謝,目前用不到這老東西,
還是原本火箭牌的比較有感覺。

發表於 2014-4-24 23:07:58 | 顯示全部樓層
jojoling 發表於 2014-4-24 10:21 PM static/image/common/back.gif
去年本來的一個計畫就是搬到竹北,做高鐵上班~
不過很多事盡在不言中~就不再有這個計畫了~
只不過房子都 ...

JOJOLING大:
  那感情好!! 送你瀑布蘭好了!! 不用電!不用油!! 風吹OK!! 日曬OK!! 雨淋OK!! 三年內一定開花!!
發表於 2014-4-25 11:09:44 | 顯示全部樓層
我推薦Arduino很容易上手,購買Arduino Uno R3就可以玩很久了(網路資料也很多).
個人對於STM8比較不熟(看完此篇討論區後,已經開始爬文了解,被推入火坑了),AVR倒是逛網頁時常看到
也可以玩看看Silabs C8051到現在不少公司的內部控制板還是常會用到,只是價格比較不優
發表於 2014-4-26 01:06:37 | 顯示全部樓層
ysc 發表於 2014-4-24 10:27 PM static/image/common/back.gif
謝謝,目前用不到這老東西,
還是原本火箭牌的比較有感覺。

YSC大:
  黑晶爐的電路 STM8 S903K3  可否幫忙確認各控制腳功能以及電路是否有誤!!
  希望可以把它改成"恆溫烙鐵" 因為已經有"經濟規模"了 目前有6套!!  感謝!!
 樓主| 發表於 2014-4-26 01:23:57 | 顯示全部樓層
antlu 發表於 2014-4-26 01:06 AM static/image/common/back.gif
YSC大:
  黑晶爐的電路 STM8 S903K3  可否幫忙確認各控制腳功能以及電路是否有誤!!
  希望可以把它改成" ...

電路是否正確跟軟體有關,所以也無法完全確定,只是SW5,SW4接法怪怪的,直接去控制LED字節輸出?這部份覺得不太合理。
發表於 2014-4-26 11:50:10 | 顯示全部樓層
本帖最後由 antlu 於 2014-4-26 11:53 AM 編輯

黑晶600.png
ysc 發表於 2014-4-26 01:23 AM static/image/common/back.gif
電路是否正確跟軟體有關,所以也無法完全確定,只是SW5,SW4接法怪怪的,直接去控制LED字節輸出?這部份覺 ...



沒見到上傳的電路圖再傳一次!!



發表於 2014-4-26 11:51:09 | 顯示全部樓層
ysc 發表於 2014-4-26 01:23 AM static/image/common/back.gif
電路是否正確跟軟體有關,所以也無法完全確定,只是SW5,SW4接法怪怪的,直接去控制LED字節輸出?這部份覺 ...

YSC大:
  我在檢查看看!!
發表於 2014-4-27 07:15:04 | 顯示全部樓層
本帖最後由 cnpan 於 2014-4-27 06:46 AM 編輯
antlu 發表於 2014-4-26 10:50 AM static/image/common/back.gif
沒見到上傳的電路圖再傳一次!!


SW4,SW5.LED1,LED2,LED3,LED4接在一處,是要查一查.
STM903 flash ram 8K,用C去寫是否夠用?
Arduino 2560
ATMEGA16U2有16K flash ram
ATMEGA2560有256K flash ram
發表於 2014-4-27 13:13:58 | 顯示全部樓層
antlu 發表於 2014-4-26 11:50 AM static/image/common/back.gif
沒見到上傳的電路圖再傳一次!!

阿乾兄,

這次撿到了!
這顆STM8S903F3只有OPTION BYTE的讀保護,
只要使用ST-LINK加上STVP在OPTION BYTE的分頁,強制寫入ROP OFF就可以回覆到跟出廠一樣了!

DSC_0621_1.jpg

stvp.png
發表於 2014-4-27 22:10:02 | 顯示全部樓層
fatzeros 發表於 2014-4-27 01:13 PM static/image/common/back.gif
阿乾兄,

這次撿到了!

fatzeros大:
   我的問題還沒解決!! 我把練習程式
#include "stm8s.h"
#define LED_GPIO_PORT (GPIOD)
#define LED_GPIO_PINS (GPIO_PIN_3 |GPIO_PIN_2 |GPIO_PIN_0)
void Delay(unsigned int nCount)
{
while(nCount !=0)
{ nCount--;
}
}

void main(void)
{
GPIO_Init(LED_GPIO_PORT,(GPIO_Pin_TypeDef)LED_GPIO_PINS,GPIO_MODE_OUT_PP_LOW_FAST);
while(1)
{
GPIO_Write(LED_GPIO_PORT,0x01);
Delay(0xFFFF);
GPIO_Write(LED_GPIO_PORT,0x04);
Delay(0xFFFF);
GPIO_Write(LED_GPIO_PORT,0x08);
Delay(0xFFFF);
}
}

BUILD 卻出現一堆問題, 說GPIO_Init(), GPIO_Write()沒有定義...
 樓主| 發表於 2014-4-27 22:31:26 | 顯示全部樓層
antlu 發表於 2014-4-27 10:10 PM static/image/common/back.gif
fatzeros大:
   我的問題還沒解決!! 我把練習程式
#include "stm8s.h"

應該是少 include 某個 Library。

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

關閉

站長小叮嚀上一條 /1 下一條

禁閉室|手機版|連繫我們|痞酷網電子技術論壇

GMT+8, 2024-4-28 10:35 PM , Processed in 0.094274 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.