2013年4月15日 星期一

stm8 計時中斷需知 設定

例如以tim4 說明
記得在計時中斷程式 一開始要先將TIM4_SR的UIF bit設成零 ,這樣計時才不會錯誤

2013年4月1日 星期一

PLC FX 如何連接 MCU

打算要透過FX上面一個8PIN的介面和透過MCU的UART做溝通
但是去查了相關資訊 那個8PIN的介面是屬於RS422,這一般工業控制上常會用到
比如阿坤做的模擬器 以及書宏後來眼身的機器 都是使用一條8轉25PIN,再搭配一個RS422轉RS232的硬體介面(25PIN 轉25PIN),就個人猜測可能是MAX485 以及MAX232 
先將PLC的訊號介面RS422 轉換成TTL的類型,然後再轉換成RS232,來讓PC可以溝通.

所以這時候如果PLC要接到MCU,只要可以將RS422轉換成TTL的類型,就可透過內部的UART 溝通了.

另外這一條RS422轉RS232的硬體介面也太好賺了吧.我算一算成本價也才200而已吧!!
竟然可以賣到一千多塊還真是坑人!!

2013年1月13日 星期日

關鍵對話 重點

我們面臨前所未有的十字路口,一條通往絕望,一條通往徹底的毀滅.讓我們祈禱自己有足夠的智慧做出正確的抉擇.   伍迪 艾倫

從心開始  專注你想要的

從我開始---記住,你可以控制的人只有你自己一人

專注於你真正想要的--當你發現自己逐漸沉默,或有訴諸語言暴力的衝動時,停下來將注意力放在你的動機上
               從我的行為上顯示,我的動機是什麼??
               釐清你真正想要的  我要我自己做什麼?要他人做什麼?要這段關係做什麼??
               最後問問自己:如果這是我想要的 我應該如何表現??

拒絕非A即B的選擇
               當你考慮清楚自己想要的事物後,千萬不要掉入非A即B的選擇
               觀察自己,是否有告訴自己要在和平與誠實之間做選擇,在贏或輸之間做選擇
              尋找兩全其美的A與B同時存在,打破所有非A即B的選擇
              釐清你不想要的有哪些,將他加入你的清單中,接著要求你的大腦開始尋找健康的方式來開啟對話

學習觀察-如何注意何時安全出現危機
學習發現關鍵對話的開端
學習尋找出安全問題的警訊
        如果是安全的情況你可以暢所欲言但是不要讓安全的問題將你帶離軌道
         對話需要語意的流動
沉默與語言暴力
沉默型式包含掩飾,避免,撤退
語言暴力包含控制,貼標籤,攻擊

學習注意內容與狀況
尋找事情變的關鍵的時點
學習尋找安全亮起紅燈的警訊
觀察其他人是否有往沉默以及語言暴力的傾向
尋找你壓力風格的爆發點

保持安全---如何創造暢所欲言的安全氛圍

後退一步

決定出在哪些狀況中,安全瀕臨危險邊緣
        共同目的:其他人是否相信你在乎他們在這場對話中的目的??他們是否信任你的動機
        共同尊重:其他人是否相信你是尊重他們的

適時道歉
        如果你明顯違反了尊重原則,記得道歉

運用對比法
       當其他人誤會你的目的或意圖時,使用對比法由你[ 不想 ]或 [ 沒有...........的意思]開始
,接著在解釋你真正想要的或實際的意圖

以CRIB法獲取共同目的
承諾(Commit)尋找目的
確認(Recognize)尋找共同目的
發明(Invent)出共同目的
腦力激盪(Brainstorm)構思新策略

主導我的故事-
如果強烈的情緒將你困在[沉默]或[語言暴力]之中,試試以下方法
追朔你的行為路徑
         注意你的行為.如果你發現自己從對話中離開,問問你自己到底在做什麼
         我現在是不是處在某種形式的沉默或語言暴力之中??
         與你現在的感覺保持聯繫.學習準確的找出你故事背後所隱含的的情緒.
         什麼樣的情緒促使我有這樣的行為表現??
         分析你的故事.質疑你自己的結論,並且尋找故事背後其他可能的解釋.
         是什麼樣的故事讓我產生這些情緒??
         回到現實.將事實與你編造的故事區分開來,放棄你對自己故事的絕對堅持
         我有什麼證據可以支持我的故事?
         尋找巧妙的故事.受害者,壞人以及無助者故事事最常見的故事類型
說出故事的其餘部分
問問自己:我是不是假裝沒有注意到自己在問題中所扮演的角色
為什麼一個講理明理而正派的人會這樣?
我真正要的是什麼?
如果我真的想要這些結果,我此刻應該做些什麼??

用STATE法陳述路徑--如何以有說服力而非惱人的方式說話
分享(Share)你的事實.由你的行為路徑中,最不具異議,最有說服力的部分開始說起
說出(Tell)你的故事.解釋你開始做了什麼樣的推論.
邀請(Ask)他人表達他們的行為路徑.鼓勵其他人分享他們的故事以及事實.
嘗試性的進行談論(Talk).將你的故事當作一個[故事]來陳述,不要將它假裝為事實.
鼓勵(Encourage)他人嘗試分享.保持安全氛圍,讓其他人也能夠表達不同,甚至相反的意見.

追溯他人的路徑
為了鼓勵語意的自由流動,避免他們掉入[沉默]或事[暴力語言],必須追溯他們的行為路徑.從好奇且耐煩的態度開始,這將可以協助你重建安全氛圍.
接著使用具有威力的傾聽技巧來探索他人通往行動的路徑.
邀請(Ask)他人分享.首先,表達出對其他人觀點的興趣.
反射(Mirror).尊重地接收他人嘗試表達的情緒,藉此增加安全氛圍.
釋義(Paraphrase).當其他人開始分享他或他的故事時,將你聽到的話重述整理,向對方顯示你的了解,而且讓他們感覺到與你分享他們的想法是安全的.
猜測語意(Prime).如果對方持續有所保留.你可以猜測語意.盡你所能的去猜測他們可能有的想法及感受.

當你開始分享你的觀點,記得做到:
同意(Agree).當你同意時,適時將你的同意表達出來.
補充(Build):如果對方故是中有所遺漏,對你同意的部分表示同意,並且進行補充.
比較(Compare):當你們的看法有顯著的不同時,不要暗示別人是錯的,必須比較雙方的觀點與想法

開始行動
將你的成功的關鍵對話轉變為絕佳的的決策以及一致的行動,切記要避免[違反期望]與[無所作為]兩種陷阱

決定[如何]決定
命令:決策的行程沒有其他人參與
諮詢:遊團體收集資訊,並由其中一小部分的人做決定
投票:有團體中某比例的人數同意來決定決策
共識:每位成員都同意,並且支持最後的決策

清楚地結束
決定誰在什麼時候做哪些事,講上述事項清楚傳遞.訂出一個後續追蹤的時間,記錄大家承諾的事項,並且持續追蹤.最後,讓人們對自己做出的承諾負責.

好記性比不是爛筆頭





2012年12月23日 星期日

醫電安規 環境條件要求

Temperature
                                Operation                                                   Transport & storage
60601-1 1988         +10 ~ +70                                               -40 ~ +70
60601-1-11 2010   +5 ~  +40 ℃                                               -25 ~ +70
17510-1 2009         +5 ~ +40℃                                                同60601-1
8185 2009              同60601-1                                                  同60601-1


Humidity
                                Operation                                                   Transport & Storge
60601-1 1988         30 ~ 75 %RH                                            10 ~ 100%RH ,including condensation
60601-1-11 2010   15 ~93%RH                                               -25℃不需控制溼度,70℃ at 93%RH non-condensing
17510-1 2009        15 ~ 95 %RH                                               同60601-1
8185 2009              同60601-1                                                   同60601-1



Atmospheric pressure
                               Operation                                                     Transport  & Storge
60601-1 1988        700 ~1060 hPa                                             500 ~ 1060 hPa
60601-1-11 2010  同60601-1                                                    未規定
17510-1 2009        同60601-1  1988                                          同60601-1  1988
8185 2009             同60601-1  1988                                          同60601-1   1988

   
                                             

2012年12月2日 星期日

libre office cale 副座標顯示 設定

此步驟是以設定y軸副座標為例,如果要設定x座標應該也是相同方法

1.點選要顯示副座標的線條,按右鍵出現選單

2.點選格式化資料序列後,出現資料序列視窗.在選項頁面中 資料列對準依照點選次Y軸,按確定後圖表上就會出現副座標了

2012年11月15日 星期四

STM8 STVD编译器的使用和设置 [轉]


一、STM8开发环境
使用STM8需下载下列工具:
1、ST 8bit MCU通用集成开发环境 - ST Visual Develop
IDE包含代码编辑、汇编编译器、代码调试功能,不含C编译器。同时IDE还自带ST Visual Programer编程软件,支持主流8bit
2、COSMIC C Compiler for STM8 16K Limited
免费下载,可申请16K代码限制版本的C 编译器。安装后,会要求注册。按照要求填写注册信息后COSMIC会提供回复,会收到一个16K License文件,将它copy到COSMIC安装路径下的License目录,默认的路径…
打开STVD,选择菜单栏Tools -Options对话框,找到Toolset标签,Toolset中选择“STM8S COSMIC”,Root path中选择COSMIC路径,默认是“CXSTM8_16K”路径。
运行ST Visual Develop(STVD) 集成开发环境,通过菜单栏Files -> New WorkSpace我们可以新建一个新的STM8工程。
在弹出的“New WorkSpace”对话框中,我们可以STVD支持的集中工程模版类型。这里我们选择使用“Create workspace and project” 。
WorkSpace是Project的管理平台,允许在一个WorkSpace中出现多个Project,通过设定我们可以选择当前的活动项目。
输入当前要建立的项目名称,并且可以根据应用的需要通过“Project location”来选择更改WorkSpace存放路径。因这里介绍的例程我们需要支持的MCU平台是STM8系列,C语言使用COSMIC,因此我们还需要对使用的Toolchain进行选择。
下一步我们要选择工程使用的MCU型号。
在对话框中我们可以看到当选中一个MCU型号,在右边的工具列表清单中会显示调试工具支持状态,绿色表示工具可以支持,灰色表示不支持。这里仅是提供调试或仿真支持,不表示编程支持,具体编程支持需要通过STVP编程软件确认。
这样一个最小的应用工程模版STVD就帮我们自动产生了
IDE界面右边的项目目录树中,我们可以看到STVD对工程自动增加了两个文件,一个是main.c文件,一个是stm8_interrupt_vector.c文件。后者提供了STM8所有的中断入口函数的地址表,以及用于各种不同类型外设中断函数名称申明。
在stm8_interrupt_vector.c文件中,我们可以看到除去Reset向量外其它中断向量的入口均是统一使用void NonHandledInterrupt (void)函数。对于正常的使用我们还是需要重新跟改中断函数入库函数名称。
对于中断函数的入口修改
1、struct interrupt_vector const _vectab[] 指明的中断向量表,每一个类似{0x82, NonHandledInterrupt},偏移量的申明表示的都是一个中断矢量对于的中断函数名称。
2、 中断函数的申明 @far @interrupt void NonHandledInterrupt (void)
例当需要使用I2C中断的时候,可以这样做:
1、申明I2C中断函数名称:
在struct interrupt_vector const _vectab[]中找到I2C中断函数入口,加入I2C中断函数名称
{0x82, I2C_Server_Interrupt }, /* IRQ19 - I2C (I2C interrupt) */
2、在stm8_interrupt_vector.c文件中添加服务函数:
@far @interrupt void I2C_Server_Interrupt (void)
~~~~~加入中断服务代码~~~~~~
return;
3、最好在文件头上方申明外部可调用:extern void I2C_Server_Interrupt (void)
4、或者仅是申明函数,再定义STM8_IT.c、STM8_IT.h文件,将中断服务程序全部放置其中。
工程建立好以后,可以通过菜单栏“Project”->“Settings”来修改项目配置
在项目设定对话框中,我们可以对汇编编译器、C编译器、连接器的配置做修改。
当写好一个程序需要进入调试时,我们可以通过STVD菜单栏的“Debug Instrument” 来选择使用何种调试工具。这里我们使用Rlink,SWIM接口。Simulator是指软仿真功能。
Tip:
1、项目编译默认存在Release、Debug两种选择。如需要自行添加其它类型,可通过菜单栏“Build->Configurations…”来配置
配置好后可通过工具栏“Project”来直接选择。
2、WorkSpace管理多个Project
直接在WorkSpace栏中通过鼠标右键打开workspace的属性,通过“Insert Project int Workspace…”可以在添加多个项目。
二、STM8S的最小硬件系统
STM8的最小硬件系统包含下列部分:
1、电源
2、时钟管理
3、复位管理
4、调试接口(SWIM)
1、电源
STM8S系列MCU的工作在3.0V ~ 5.5V之间,芯片内部自带一个电源管理系统可以为自身核心工作提供1.8V电源

STM8 I2C READ UART接收中斷傳輸


stm8 讀取I2C裝置並透過UART1 接收中斷的方式  傳送資料到PC接收
環境是使用stvd  &cosmic
首先STM8必須先設定好CLK &I2C以及UART的初始化作業

使用中斷觸發必須要加入  enableInterrupts(); 才有用
而使用中斷需要確定中斷向量表的內容是不是都規劃好
然後將CODE寫在it.c的內容 例如:


INTERRUPT_HANDLER(UART1_TX_IRQHandler, 17)
{
    /* Write one byte to the transmit data register */
   UART1_SendData8(TxBuffer1[IncrementVar_TxCounter1()]);
 if (GetVar_TxCounter1() == GetVar_NbrOfDataToTransfer1())
    {
        /* Disable the UART1 Transmit interrupt */
        UART1_ITConfig(UART1_IT_TXE, DISABLE);
    }
}

另外使用UART1_SendData8( ) 這個function時
如果要連續使用最好要有delay time
不然傳送資料會丟失