advertisement

2014年12月29日

LCD應用控制 8051 assembly

;------------------------------------------
;     ==================================
;     ==        LCD應用控制         ==
;     ==          2014/12/29          ==
;     ==        蘇偉諺 4A037052       ==
;     ==================================
;------------------------------------------
;於LCD顯示第二列顯示'THIS IS 2ND LINE'並閃爍三次,然後由左而右依序清除

LCD應用控制 8051 assembly

UART、LCD與4x4鍵盤應用

4x4按鍵與LCD應用 8051 assembly

喇叭與七段應用控制 8051 assembly

LCD 應用控制 8051 assembly

七段與MINIKEY應用控制 8051 assembly

;------------------------------------------
;     ===================================
;     ==     七段與MINIKEY應用控制     ==
;     ==          2014/12/29           ==
;     ==        蘇偉諺 4A037052        ==
;     ===================================
;------------------------------------------
; 以MINIKEY的4個按鍵來控制七段顯示器的動作,按S1、S2、S3、S4分別顯示“┌” 、 “┐” 、“└” 、“┘”。;-----------------------------------------------------------------------------

喇叭與MINIKEY應用控制 8051 assembly

;------------------------------------------
;     ===================================
;     ==     喇叭與MINIKEY應用控制     ==
;     ==          2014/12/29           ==
;     ==        蘇偉諺 4A037052        ==
;     ===================================
;以MINIKEY的4個按鍵來控制喇叭,按S1、S2、S3、S4分別讓喇叭發出1kHz、2kHz、4kHz、8kHz聲響。

七段應用控制 8051 assembly

;------------------------------------------
;     ===================================
;     ==         七段應用控制          ==
;     ==          2014/12/29               ==
;     ==        蘇偉諺 4A037052     ==
;     ===================================
;------------------------------------------
;依序點亮七段顯示器的燈管a、燈管b、燈管c…燈管g;點亮的同時依序閃爍1次、2次、3次…7次。

2014年12月26日

2014/12/26進階微控制器應用

需下載
FreeRTOS  v7.6.0程式源碼
在source資料夾
list.c
task.c
在source/portable/SDCC/Cygnal/資料夾=>for 8051

2014年12月21日

2014年12月19日

Debian WPA Wireless how to use

# vi /etc/network/interfaces
auto eth1
iface eth1 inet dhcp
wpa-ssid [EESID]
wpa-psk [passowd key]
# ifup eth1

root@Lenovo-B480:/home/clementyan# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_req=1 ttl=46 time=11.7 ms
64 bytes from 8.8.8.8: icmp_req=2 ttl=46 time=12.8 ms
64 bytes from 8.8.8.8: icmp_req=4 ttl=46 time=12.5 ms

2014/12/19 進階微控制器應用

http://static.grumpycoder.net/pixel/uC-sdk-doc/index.html

在freeRTOS中每一個工作均以一個TCB來代表,所以建立一個新的工作,實際就是建立一個新的TCB資料。

新的TCB均需加入工作就緒列表(pxReadyTaskLists),如果是第一個工作,則就需被執行,否則需等待排程。

建立一個新的TCB主要是初化TCB堆疊區,回顧TCB之資料結構

2014年12月16日

Debian 64位元作業系統 裝 32位元套件 安裝 skype

# dpkg --add-architecture i386
# apt-get update;apt-get upgrade
# apt-get install ia32-libs
此行只限於wheezy squeeze,jessie不用裝--2015/06/08
# dpkg -i skype-debian_4.3.0.37-1_i386.deb
# apt-get install -f
# dpkg -i skype-debian_4.3.0.37-1_i386.deb


# apt-get install pulseaudio

$ skype &

若還是不行試試下面的指令
$ LD_PRELOAD=/usr/lib/mesa-diverted/i386-linux-gnu/libGL.so.1 skype &
2016/05/27

2014年12月12日

2014/12/12 進階微控制器應用

主要記憶體有二

  1. stack堆疊-儲存區域變數、全域變數=>managed(受管理的),無記憶體洩漏(編譯時已知道的變數)
  2. heap記憶堆-儲存動態變數(大量)使用malloc(配置),free(釋放),使用過後需要把他free釋放,否則造成記憶體洩漏(編譯時不知道的變數)
freeRTOS有三種記憶體堆
  1. keap_1只配置不釋放(適合當你的應用程式是固定的動態記憶體,或者已經知道最多所需使用的動態記憶體微多少)
  2. keep_2可配置可釋放,使用簡易方法執行配置、釋放,可能會造成記憶體碎斷(fragmentation):假設第一筆資料100bytes,第二筆50bytes,第三筆30bytes,若第二筆被釋放,則要在新增大於50bytes的資料,則會無法放入,只能放置在第三筆之後,稱記憶體碎斷,使記憶體存取速度下降,則需使用記憶體重整。
  3. keep_3完整之配置釋放,並且會記憶體重整,較常用較耗時

2014年12月5日

2014/12/05 進階微控制器應用

critical section(緊要區):當程式進入緊要區時有兩種可能(該區程式不可太長),目的:希望緊要區內的程式不被其他程式打斷

  1. 所有中斷被除能(disable)
  2. 部份中斷被除能(需包含系統滴答中斷的除能,則不會文本切換),保留部份硬體中斷仍可致能,被致能之中斷需能被控制到不切割緊要區之程式,程式進入緊要區後,執行緊要區程式後,要離開緊要區時,需重新致能被除能之中斷