找回密碼
 立即註冊
樓主: 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。

回復

使用道具 舉報

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

本版積分規則

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

GMT+8, 2025-6-30 10:08 PM , Processed in 0.047478 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回復 返回頂部 返回列表