痞酷網_PIGOO

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

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

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

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

謝謝!
樓主: ysc

AVR與STM8 學習心得

  [複製鏈接]
 樓主| 發表於 2014-4-9 22:29:31 | 顯示全部樓層
本帖最後由 ysc 於 2014-4-9 10:34 PM 編輯


前面說到STM8組合語言可以用STACK來管理區域變數,以下舉個例子來說明:

假設某副程式裡需要一個迴路計數器,程式可以這麼寫:

TEST:
           PUSH    #8              ; 真的可以直接將常數推入STACK
LOOP:
           開始執行某些指令
        

           結束執行某些指令

           DEC      (1,SP)          ; 迴路計數器減1
           JRNE     LOOP          ; 重複做8次
;
           POP      A                 ; 取消區域變數空間
           RET

副程式裡有多個區域變數也可以逐一推入STACK,再以(N,SP)來操作,N的最大值是255,一般來說很夠用了,巢狀副程式呼叫由於有SP指標幫忙,永遠不必害怕變數互相覆蓋,聽說高階語言也是用這方式來管理區域變數。


 樓主| 發表於 2014-4-9 23:38:31 | 顯示全部樓層
本帖最後由 ysc 於 2014-4-10 01:10 AM 編輯
雄爸爸 發表於 2014-4-9 10:17 PM static/image/common/back.gif
http://www.xinpian.net/ST/stm8s/STM8S105K4T6.html

下方有STM8S105K4T6中文資料


這篇中文資料只是STM8S105K4T6有哪些內建週與電氣規格的說明,一開始也是找到這篇英文版來看,看得霧煞煞的都找不到想要的內容,後來才又找到另一個文件,是STM8S全系列通用資料,裡面就有詳細說明各內建週邊,這也是ST技術資料建立不太理想的地方,寫程式時硬體要看兩篇PDF檔、外加組合語言指令與組譯器說明,共需開4個PDF檔。

在GOOGLE用RM0016來搜尋就找得到這篇詳細的STM8S全系列通用資料:
RM0016.gif

總共有454頁,要完全消化完畢要花些時間...........



發表於 2014-4-9 23:42:19 | 顯示全部樓層
scottwang 發表於 2014-4-9 08:44 PM static/image/common/back.gif
我要提告.

首謀 : ysc

是烏骨雞學姐在誘拐......
 樓主| 發表於 2014-4-10 00:55:32 | 顯示全部樓層
本帖最後由 ysc 於 2014-4-10 01:12 AM 編輯

這是STM8S105系列的Memory map:

MEM.gif

內建RAM、EEPROM、I/O暫存器、Flash ROM等都在64K線性空間內,也就是每種指令、每種選址法都適用在每個區塊,高興將程式碼搬移到RAM、EEPROM執行都可以,程式編寫很有彈性。

OPTION BYTE (類似AVR的FUSE BYTE) 也可以由應用程式透過特定程序來讀寫,可以在使用者階段來改變,不一定要用下載器才能變更,這項便利性勝過AVR很多。

對於整個選址空間內,有許多指令可以直接操作:

             BSET      $1000,#7        ; 將位址 $1000 的 bit 7 設為 1
             BRES      $1000,#4        ; 將位址 $1000 的 bit 4 設為 0
             BCPL      $1000,#3        ; 將位址 $1000 的 bit 3 反向

             MOV       $1000,#$FF    ; 將 $FF 寫入位址 $1000
             MOV       $1000,$1002   ; 將 $1002 內容 COPY 到 $1000 ( 2 BYTE 位址長度)
             MOV       $10,$12         ; 將 $12  內容 COPY 到 $10 ( 1 BYTE 位址長度)

這些指令8051也都有,但位址範圍有限制,侷限在那256 BYTE RAM 範圍內,而STM8S則是64K空間都可以。



發表於 2014-4-10 01:33:55 | 顯示全部樓層
基本上,我會建議大家,把心放下,只玩一種~
fatzeros 的心太雜~看到一種CPU有某一種特點就也想學學那種~是時後需要定下來~只玩一種MCU的時後~
只要玩爽(玩精)一種,其他都只是換湯不換藥~
除非是偏專業級的,不然你在家擺那麼多隻落鐵(學多顆)是不好的~一種~可以符合95%以上玩具需求~

評分

1

查看全部評分

 樓主| 發表於 2014-4-10 01:37:21 | 顯示全部樓層
jojoling 發表於 2014-4-10 01:33 AM static/image/common/back.gif
只要玩爽(玩精)一種,其他都只是換湯不換藥~ ...


非常認同!
發表於 2014-4-10 01:37:50 | 顯示全部樓層
雄爸爸 發表於 2014-4-9 10:17 PM static/image/common/back.gif
http://www.xinpian.net/ST/stm8s/STM8S105K4T6.html

下方有STM8S105K4T6中文資料

雄爸:
   粗略看了一下!! 好像還要一些範例 C 編譯器... 真的一時玩不下去...
發表於 2014-4-10 01:38:38 | 顯示全部樓層
程式多1k~少100個bytes..指令簡化了幾個~效能多了5%~成本多了一倍~~
這些都不是玩具列為第一考慮的~真的~
玩軟韌體玩具,是比資源的,比sample code的~因為你們需要很多資料可以參考~
發表於 2014-4-10 01:39:27 | 顯示全部樓層
wish 發表於 2014-4-9 11:42 PM static/image/common/back.gif
是烏骨雞學姐在誘拐......

那不知是誰起頭的呢? ... :sam05
然後夫唱婦隨 ... :sam45
如果當初我沒有被拐去買那台家電測試儀,可測電容的容抗,感抗及ESR,那真不知何時才會買,也無法測電容的好壞了 ... :sam11
被拐了還得說謝謝 ... :sam30
發表於 2014-4-10 08:58:10 | 顯示全部樓層
wish 發表於 2014-4-9 11:42 PM static/image/common/back.gif
是烏骨雞學姐在誘拐......

其實wish大是躲在幕後的黑手~所以通常只是起個頭而以
後續處理就交給學姐了~
發表於 2014-4-10 10:02:26 | 顯示全部樓層
et1109 發表於 2014-4-10 08:58 AM static/image/common/back.gif
其實wish大是躲在幕後的黑手~所以通常只是起個頭而以
後續處理就交給學姐了~ ...

冤枉啊!~~~
發表於 2014-4-10 10:04:24 | 顯示全部樓層
scottwang 發表於 2014-4-10 01:39 AM static/image/common/back.gif
那不知是誰起頭的呢? ...
然後夫唱婦隨 ...
如果當初我沒有被拐去買那台家電測試儀,可測電 ...

咦!當初到底是誰說要買家電測試儀的?我們一定要把兇手抓出來~~~
 樓主| 發表於 2014-4-10 10:51:22 | 顯示全部樓層
本帖最後由 ysc 於 2014-4-10 11:11 AM 編輯

再舉一個STM8輸出到74HC595的例子:

W595:
               PUSH       A                        ; 將要輸出的數據推入STACK
               LD           A,#8                   ; 共有 8 個 bit 要移出
W595_1:
               RLC        (1,SP)                   ; 數據含C往左旋轉 1 bit ,最高位移入 C Flag
               BCCM     PB_ODR,#D_RS     ; 將 C 輸出到 HC595 的資料輸入腳
               BSET      PB_ODR,#S_CLK    ; HC595 CLOCK HI
               BRES      PB_ODR,#S_CLK    ; HC595 CLOCK LOW
               DEC        A
               JRNE      W595_1                 ;重複 8 次
;
               RLC       (1,SP)                    ; 將數據再旋轉一次,恢復原本值
               POP        A                          ; 取回原本值
               RET


以上指令除JRNE條件成立時是2週期,RET是4週期,其他指令都是1週期,使用內部16 Mhz時鐘源之下,1個週期是62.5nS,也就是1uS可以執行16條指令。

利用STM8方便的指令集,這類型I/O程式可以很有效率地執行。




 樓主| 發表於 2014-4-10 11:15:17 | 顯示全部樓層
本帖最後由 ysc 於 2014-4-10 11:55 AM 編輯

antlu  http://www.waveshare.net/article/STM8-3-3-10.htm  發表於 3 分鐘前
antlu  雖然我不懂組合語言,還是要讚一個!! 有了範例 少則模仿,多則發揚光大,沒有範例我是"老鼠抓龜"無從著手!! 昨晚網路找到一個站 有很多範例喔!!   發表於 4 分鐘前
-----------------------------------------------------------------------
對岸類似這種資源很多,但也有些範例執行起來是有問題的,所以參考之後還是要靠自己消化。

現在台灣都沒人寫這方面的書了,AVR、STM8只能買簡體書來看,買過幾本來參考,發覺人家真的進步很快,重慶南路某書店已改成簡體書專賣店,進書店彷彿身在大陸..........

若學AVR可以買以下來連結這本來參考,內容真的很有料(其實學其他單晶片也有參考價值),不是為這賣家廣告,而是這拍賣照片拍得比較清楚,真的要買找價錢最低的,也就是照片最模糊的那家。
http://goods.ruten.com.tw/item/show?21311248519625

大家該多加油了,MIT不是表面口號,真正有實力的東西還是要拿得出來!


發表於 2014-4-10 14:21:27 | 顯示全部樓層
本帖最後由 fatzeros 於 2014-4-10 02:26 PM 編輯

才隔一晚沒上來,就被機槍掃射亂槍打死了!
其實我只是博愛了一點啦!因為什麼都不懂,
所以就什麼都看,什麼都玩玩看!

其實,我看了滿多的文件,論壇也逛了不少,
發現,以最近來說,真的STM系列的MCU,在對岸真得很紅,
主要還是價格因素,還有開發上,有很多的庫(應該是說週邊的程式代碼都很完備的意思吧!),
所以,玩的人也很多,相關軟硬體參考資料已經變得很多很多了,
AVR的M8已從主流慢慢的退下來了,主要還是FUSE(熔絲位)的問題,
一個不小心,芯片就鎖死了,要解還有點麻煩!

再來,其實對岸也開始自主研發MCU了,
STC不要算,LGT(http://www.mcugreen.com/)
雖然還是基於AVR的架構,但是也有動作了!
LGT MCU的價格聽說,要極力的壓在2RMB左右,
但是,我目前的能力只到這了,讀資料的階段!
接下來,我就大概知道方向了!

來,不要說STM的中文資料不好找,
其實官網就有,最近滿多大廠都在對岸深耕啊!
沒辦法,因為是世界的工廠啊!
STM MCU官網:
http://www.st.com/web/cn/catalog/mmc/FM141

STM8系列:
http://www.st.com/web/cn/catalog/mmc/FM141/SC1244

ysc兄說的參考手冊,有中文的,請注意英文的版本較高:
http://www.st.com/stonline/stapp ... l&SeriesID=1010

STM32系列:
http://www.st.com/web/cn/catalog/mmc/FM141/SC1169

頁面的左方都有資源可看,有些還有中文的!

再來是ATMEL的AVR中文官網:
http://www.atmel.com/zh/cn/produ ... rs/avr/default.aspx

[url=http://www.atmel.com/zh/cn/search.aspx?filter=0&btnG=Search&site=cn_collection&client=CNsupport_frontend&proxystylesheet=CNsupport_frontend&output=xml_no_dtd&getfields=*&oe=UTF-8&ie=UTF-8&ud=1&exclude_apps=1&num=1000&access=p&sort=date:d1&entqr=3&entqrm=0&lr=lang_en&q=+inmeta:asset_type_ds~Datasheets&dnavs=inmeta:asset_type_ds~Datasheets]ATMEL的DATASHEET搜尋[/url]
ATMEL的文件搜尋

非官方的AVR資源:
http://www.avrvi.com/index_download.html
http://www.avrvi.com/avr_datasheet.html
http://www.openedv.com/posts/list/129.htm

等等等……一大堆啊!

另外,購團的問題,小弟可以幫忙找資料,
但是今年的玩具錢不多,也已花得差不多了,
戒急用忍啊!

對了,說到這,如果真的要玩MCU的話,
上次和jojoling兄有聊到LA(logic analyzer邏輯分析儀),有其必要性啊!

知名廠商官網:
https://www.saleae.com/
https://www.usbee.com/

但是產品有夠高貴!
請轉往大家的淘寶看看!
這裡小弟已給出關鍵字了,請大家動動貴手囉!

評分

4

查看全部評分

發表於 2014-4-10 15:16:42 | 顯示全部樓層
fatzeros 發表於 2014-4-10 02:21 PM static/image/common/back.gif
才隔一晚沒上來,就被機槍掃射亂槍打死了!
其實我只是博愛了一點啦!因為什麼都不懂,
所以就 ...

原來你是喬巴(迷路=糜鹿)喔 ...
喬巴是糜鹿,不會迷路,你迷了路,找到出來的路,再當導遊帶大家去找糜鹿.
發表於 2014-4-10 18:35:08 | 顯示全部樓層
ysc 發表於 2014-4-10 11:15 AM static/image/common/back.gif
antlu  http://www.waveshare.net/article/STM8-3-3-10.htm  發表於 3 分鐘前
antlu  雖然我不懂組合語言, ...

YSC大:
    新竹清大對面也有一家叫做"若水堂" ,現在誠品已經不賣基礎電腦的書,這是進步嗎?還是因應大眾的需求!!  
發表於 2014-4-10 18:53:38 | 顯示全部樓層
fatzeros 發表於 2014-4-10 02:21 PM static/image/common/back.gif
才隔一晚沒上來,就被機槍掃射亂槍打死了!
其實我只是博愛了一點啦!因為什麼都不懂,
所以就 ...

F大:
   講到 LA 流口水就好!! 記得幾十年前公司就有買 HP的 LA,只是這比示波器還困難用,沒有點底子充其量也是浪費,這麼多年來會不會進步到像我這樣門外漢也會用(AUTO一鍵搞定)就不得而知了... 想想這些MCU應用無非就是要方便使用者把東西做出來!! 或是降低成本(COST DOWN) ,價格越低出手越寬鬆(別說你預算有限),目前 89S52 網路價格NT:30 應該算是便宜了(89C2051 和 STC15F204EA也是 NT:30) 記憶體4K,一般用途都夠用了,除非再更多的用途.. 記得之前練習的時候遇到 SPRINTF 指令就要 5~600 BYTE ,我也在想這些高檔 MCU 支援C語言會不會因為記憶體會用的兇所以就把他加到 16K~32K(FLASH)...   
 樓主| 發表於 2014-4-10 19:25:30 | 顯示全部樓層
antlu 發表於 2014-4-10 06:35 PM static/image/common/back.gif
YSC大:
    新竹清大對面也有一家叫做"若水堂" ,現在誠品已經不賣基礎電腦的書,這是進步嗎?還是因應大眾 ...

自然市場機制,也不能說業者如何,但這也反映出實際台灣的狀況。

發表於 2014-4-10 20:37:29 | 顯示全部樓層
antlu 發表於 2014-4-10 06:53 PM static/image/common/back.gif
F大:
   講到 LA 流口水就好!! 記得幾十年前公司就有買 HP的 LA,只是這比示波器還困難用,沒有點底子充其 ...

LA不會困難啦,就是把信號線夾一夾,再看所要測的信號波形為Hi為L而已.

SPRINTF在DOS時代就是個問題了,使用方便但是檔案空間就不方便,反應在8051 Mcu裡就是記憶體不方便了,電腦語言的使用,功能越強的越方便使用,但是與檔案大小或者記憶體的空間關係密切,所以除非不得已,還是少用那些龐然大物的指令.

89S52我所找到的都還很貴的說,連digikey以500,1000pcs報價都還很貴的呢.
發表於 2014-4-10 21:39:02 | 顯示全部樓層
scottwang 發表於 2014-4-10 08:37 PM static/image/common/back.gif
LA不會困難啦,就是把信號線夾一夾,再看所要測的信號波形為Hi為L而已.

SPRINTF在DOS時代就是個問題了,使 ...

一般在Digikey或Mouser 上賣的零件比跟代理商會貴非常多! 印象中代理商只要USD$0.6~0.7@1k 左右(排單要1~2個月),台幣20左右便宜又穩定
發表於 2014-4-10 22:28:57 | 顯示全部樓層
yesjarmail 發表於 2014-4-10 09:39 PM static/image/common/back.gif
一般在Digikey或Mouser 上賣的零件比跟代理商會貴非常多! 印象中代理商只要USD$0.6~0.7@1k 左右(排單要1 ...

感謝提供資訊.
發表於 2014-4-13 17:23:02 | 顯示全部樓層
我上完課回來了~全身疲勞中~

回答一些個人看法~
LA的適用性的問題,其實在很多情形是可以為示波器取代的。
底下舉些例子:
1.想確定你寫的程式,輸出信號到底對不對~可用示波器判定。
2.用2個channel,把output搭上 clk 可簡單分析在一個全整的 Frame 裏面,時序對不對~

底下例子是由 scope(示波器) 來判定,沒法用 LA (邏輯分析儀):
1.在一個示知的系統,需要量測猜測判定各個腳位的定義
2.你程式送出的訊號,是否真實的被透過外部訊號確定的送出~
   如真實準位,邏輯準位的差異~

必需由LA才有辨法完成的~從一般的 scope 無法完成的工作~
1.如像上次那個例子,在unknown的系統裏,示波器是無法取出那些交握資料的~
  彷製一個被人保護的機器,必須要分析所有硬體來回之間,所有的數劇~
2.多 channel資料的分析,scope 通常不會有到8 channel/ 16 channel~

一般來說,不是太過於專業的狀況,LA必要性不太需要~
如果真的想買來玩玩~ TB裏 saleae(24Mhz) 35RMB的彷製品就可適用一般51(低速單晶片)玩家的所有問題~通常這些功作,可用 scope 來取代~
 樓主| 發表於 2014-4-13 18:08:42 | 顯示全部樓層
jojoling 發表於 2014-4-13 05:23 PM static/image/common/back.gif
我上完課回來了~全身疲勞中~

回答一些個人看法~

以粗略來分的話,重複性波形測量適合使用示波器,非重複性波形則是LA比較易於觀測。

即使是LA功能遠強大於示波器,但收集了大量資料要分析也是很花時間與腦力的,LA並不表示是萬能的,最重要的還是操作者的腦筋與判斷力。

發表於 2014-4-13 18:57:50 | 顯示全部樓層
回到原來問題~

大家想玩專那一顆?
我投 AVR一票.....
 樓主| 發表於 2014-4-13 20:35:33 | 顯示全部樓層
本帖最後由 ysc 於 2014-4-13 08:39 PM 編輯
jojoling 發表於 2014-4-13 06:57 PM static/image/common/back.gif
回到原來問題~

大家想玩專那一顆?


我現在選STM8,因為:
1. 比AVR便宜。
2. 組合語言指令比較好用。
3. Eeprom、Flash ROM 寫入比較簡單。
4. Optional byte操作比AVR的Fuse Byte合理一些。
5. 內建Timer比較強。





發表於 2014-4-14 09:11:49 | 顯示全部樓層
stm加一,
熟了stm8之後,
可以再進階上stm32 arm架構!
發表於 2014-4-14 16:30:50 | 顯示全部樓層
ysc 發表於 2014-4-9 10:29 PM static/image/common/back.gif
前面說到STM8組合語言可以用STACK來管理區域變數,以下舉個例子來說明:

假設某副程式裡需要一個迴路計數 ...

大大
這個精闢呀
請問
在哪買的工具
發表於 2014-4-14 17:15:02 | 顯示全部樓層
我吃硬不吃軟~~~~路過看熱鬧而已n_051|
 樓主| 發表於 2014-4-14 18:08:44 | 顯示全部樓層
本帖最後由 ysc 於 2014-4-14 06:20 PM 編輯
xiaolaba 發表於 2014-4-14 04:30 PM static/image/common/back.gif
大大
這個精闢呀
請問

在露天拍賣買的,用「ST-LINK V2」就可搜尋到一堆,是買有鋁殼像隨身碟外型,一個250元附近,已經使用一陣子了,下載程式、除錯都沒問題,跟原廠STVD、 STVP也都能搭配。

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

本版積分規則

關閉

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

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

GMT+8, 2024-11-17 10:36 PM , Processed in 0.384483 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.