2012年9月25日 星期二

如何更改Synology Station php 上傳檔案大小


先以root登入synology,不然無法修改
vi修改 usr/syno/etc/php.ini
max_execution_time = 600
max_input_time = 600
memory_limit = 256M
post_max_size = 210M
upload_max_filesize = 200M
伺服器重開機
已可以上傳大檔

2012年9月24日 星期一

在synology nas中定期執行moodle crontab

1. Edit /etc/crontab (nano /etc/crontab)
2. 10 * * * * root wget -q -O /dev/null http://moodleIP address/moodle/admin/cron.php    //含義是每10分鐘執行一次cron
3. Restart crond service (synoservice --restart crond)
4. DONE!

2012年8月19日 星期日

OpenCV設定及測試

 #include <stdio.h>  
 #include <cv.h>  
 #include <highgui.h>  
 int main()  
 {  
      char filename[]="0.jpg"; // 想要取得的圖檔名稱,將其放在和專案同一資料夾中  
      IplImage *image; // IplImage利用 cvLoadImage()圖檔中的資料結構  
      image = cvLoadImage(filename,CV_LOAD_IMAGE_UNCHANGED); // 讀取影像的資料結構  
      if(!image){  
           printf("Error: Couldn't open the image file.\n");  
      }  
      cvShowImage("HelloWorld",image); // 函式使影像在視窗中顯示  
      cvWaitKey(0); // 函式使影像視窗停留   
      cvDestroyWindow("HelloWorld"); // 函式用來銷毀一個視窗  
      cvReleaseImage(&image); // 釋放IplImage資料結構  
   return EXIT_SUCCESS;  
 } 
使用OpenCV, C語言存取檔案的格式範例,在安裝OpenCV時要注意的是devc++要設定編譯器環境:
(1)下載 OpenCV-2.0.0a-win32.exe
(2)安裝OpenCV2.0在C:\OpenCV2.0
(3)在DEV 工具/編譯器選項/編譯器/編譯器設定組態
新增編譯器設定(綠色加號按鈕)並命名為"OpenCV2.0″
(4)在連結器命令列中加入以下命令(前面框號記得打勾)
-llibcxcore200 -llibcv200 -llibcvaux200 -llibhighgui200 -llibml200
(5)在DEV 工具/編譯器選項/目錄/二進位檔 加入:
C:\OpenCV2.0\bin
C:\Dev-Cpp\Bin
C:\Dev-Cpp\libexec\gcc\mingw32\3.4.2
(6)在DEV 工具/編譯器選項/目錄/函式庫 加入:
C:\OpenCV2.0\lib
C:\Dev-Cpp\lib
(7)在DEV 工具/編譯器選項/目錄/C引入檔 加入:
C:\OpenCV2.0\include\opencv
C:\Dev-Cpp\include
(8)在DEV 工具/編譯器選項/目錄/C++引入檔 加入:
C:\OpenCV2.0\include\opencv
C:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include
C:\Dev-Cpp\include\c++\3.4.2\backward
C:\Dev-Cpp\include\c++\3.4.2\mingw32
C:\Dev-Cpp\include\c++\3.4.2
C:\Dev-Cpp\include
(9)在C:\OpenCV2.0\include\opencv中找到cxoperations.h檔
(10)找到檔中第66行部分程式碼如下
#else
#include
#if __GNUC__ >= 4
(11)將它改成如下程式碼並儲存
#else
#include
#if __GNUC__ >= 4 || __MINGW32__

2012年8月18日 星期六

linux embedded嵌入式系統初學

不是電子相關科系的,突然就鑽進了單晶片的世界,第一堂課老師就叫大家畫一個USB電子電路圖,要學的可多了,找到了一個講PIC單晶片的初學資料,怕忘了在那找的,就放這了。

剛才看到一個PIC的板子 不知道它跟51的區別 特此 去相關論壇上找到這篇文章,以求給跟我類似的人掃掃盲  高球可以飄過 (*^__^*) 嘻嘻……

前段時間,小弟閒逛,偶發現一論壇,一前輩講pic系列,講得那個通俗啊!估計識字的都能看的懂,好東西不敢獨享,拿出來與大家分享,未經作者同意擅自轉載,請作者諒解,不過既然前輩那能這麼無私,我這樣也不為過吧,呵呵! 

閒話少說,上菜了! 


單片機入門不難------談PIC系列(轉自礦石收音機論壇---嶗山) 


罈子裡的老兄小弟,如果你已經多次想進單片機之門而未入,如果你有很多空閒時間想打發,如果你玩收音機感到疲勞想換個口味,如果。。。 
那就聽小弟我白話白話,反正我們這些老大難也沒有什麼重要的事情做。。。。 

閒言少許,話說人間事物的學習,不外兩類:一類入門易,精通難比如礦石機,再比如練書法誰都會寫兩下,可寫好卻不是一朝一夕的事兒。另一類則入門難精通易,比如超外差收音機,學會需要各種放大、振蕩、反饋、混頻、中頻、統調等等,但是一旦你學會,做出一個高質量的收音機,確也不是難事。單片機屬於後者,所以無論如何,你得用些時間,學習一些新名詞並理解,甚至還得花一些小錢。但是,一旦你掌握,其樂趣也像收音機一樣,很有吸引力的。本故事說給一點也不懂計算機,甚至數字電路的引引道。一般入門應該有保障。 

改為:  本故事說給懂電工、電子、邏輯電路的老傢伙和半老傢伙,如果對電子一竅不通人講那我勸你也別瞎子點燈了,要是邊講基礎邊講pic這書就不知唱到何年何月啦。 

    單片機不同於收音機,收音機的任務最終就是聽好聲音一個,單片機可以做很多事情,要你來安排它的工作。安排它就先的認識它,熟悉它 
請看圖1 


這個8條腿的小螃蟹就是我們的第一頓飯,只要把它吃下去,以後的大餐就好辦了。 
第1、8條腿接電源 +5V  和 地線。頭兩條腿是螃蟹鉗子,好吃的很。 現在剩下了 6 條腿 
第2、3條腿 使用時外接一個晶振的東西  我們接一個 4 MHz的。 
第4條腿是復位腳,是一個信號輸入腳。單片機正常運行時接高電平。當有一個低電平脈衝輸入到這個腳時單片機就復位。所謂復位就是單片機內部所有的工作部件統統回到規定的狀態,程序也復位到頭一句上開始逐條運行。例如,你設計的一個報警鎖定的 LED紅燈亮後,當需要解除報警時,用一個按鈕給這個腳瞬時接地一下,相當於給它一個夫脈衝,系統就復位了,led燈就熄滅了,程序從頭開始。 

以上5個腳,幾乎所有單片機都有,包括世界上最複雜的,和世界比較簡單的單片機-----PIC12CE519 

輪到底幾條腿啦?奧是第5條腿,這條叫單片機的 I/O 腳。就是輸入輸出腳。你可通過程序動態地控制它作為輸入或輸出,作為輸出時可以程序控制它的輸出電平為高1或低0。所以,他的工作狀態有四種:輸入0,輸入1,輸出0,輸出1 

剩下的兩條腿和第5腳功能一個樣。 
原來編輯帖子是有時間限制的阿。也好,俺學乖了,先在記事本上編輯,在複製粘帖。 
歡迎各位捧場,在此不敢以講課回答問題的姿態出現,不過各位的問題我盡力而為。 

       上邊我們已經把8條腿消化掉了,其實我們要弄明白的也就3只腿,我們再簡單一些,先整明白兩條腿,即GP0,GP1.這兩條腿低級一點的用法,可以控制繼電器,LED燈,高級一些的用法可以進行I2C總線,RS232總線的通信,作為擴展輸入可以模擬出來A/D轉換器(6--7bit),可以測量一個電阻的粗略值。作為輸出也可以直接推動揚聲器奏出音樂。這是後話暫且不提。 

現在要控制使用這兩隻腿,我這個三腳貓功夫的說書的不得不講一下軟件了,要想講明白軟件又不得不涉及到單片機的內部結構。那位說啦,你可別提這軟件和結構了,以前俺就是讓它們打敗的,現在聽到這個心裡就打鼓。嘿嘿,不要緊,果真如你所說,那你就不妨跟著我再失敗一次, 反正嗎多一次失敗又不納稅,嘿嘿。不過你也要有思想準備,徹底弄明白是個漸進的過程。 

       要說這程序和單片機內部結構,還真是老大難,不過蟹黃蟹肉都可都在裡面。我現在要是給你說PIC單片機是哈佛結構的,51系列是馮-諾伊曼結構的,恐怕你要立馬扎走人了。所以我得用點心思不讓你溜號。 

       好在PIC系列的製造商(microchip 微芯公司 美國)理解我等苦衷,全部只有35條指令,而且有一些指令我們一般很少使用,常用的也就十幾句,用的時候查手冊,無需記憶。就算我們兩天學習一句,也就兩三個月時間,總比到老了還怕它們強啊。廢話少說先看下面的兩個例語: 

my_name006:           movlw  02h       '常數2進入w 
                              movwf  GPIO     'W 的數進入 寄存器GPIO 
          
這就是我們編的程序裡的兩個句子,也叫源程序。有以下特點 

每行只能寫一句話 
每句話由四部分組成: 

標號:  操作指令   操作數        '程序註釋 

下面我結合例子把這四部分解釋一下。 

第一部分 my_name006: 叫做標號,它是由字母或數字組成,由冒號結束。標號可有可無,比如第二句就沒有標號。 
第二部分movlw 叫做操作指令。它是必須有的,不能省略。PIC 系列的單片機共有 35 條指令。 
第三部分02h   叫做操作數。有的指令沒有操作數或者操作數是默認的,也不用寫。 
第四部分是程序註釋,必須以單引號開頭,主要作用是提醒和備忘。註釋也是可有可無。 

第二個例句中,省略了標號,當然註釋也可以省略。他的指令是movwf, 操作數是GPIO。操作數不一定是數字,也可能是一個由字母組成的字符串。 

      知道了語句格式以後,我們下面就學習一些常用語句。我們先把這兩個例句弄清楚。 

      這兩句話的作用是把 2 這個常數寫入到 GPIO 這個寄存器裡。 
      單片機裡有一些部件需要我們使用和操作,都是通過讀寫寄存器來實現的。每個部件都對應有操控它的寄存器,例如我們要控制使用的管腳GP0,GP1 這兩個管腳對應的寄存器就叫做GPIO。對GPIO寄存器讀操作,實際等效察看管腳電平的高低;對GPIO寄存器相應的位寫1操作,實際等校讓管腳輸出高電平。寫0,輸出低電平。 

每個寄存器可以儲存一個八位的二進制數。這八個位的每個位都有名稱,從左向右的名稱是: 
                                            左端第首位名稱叫D7, 
                                            左端第二位名稱叫D6, 
                                            左端第三位名稱叫D5, 
                                            左端第四位名稱叫D4, 
                                            左端第五位名稱叫D3, 
                                            左端第六位名稱叫D2, 
                                            左端第七位名稱叫D1, 
                                                 最後一位叫D0, 

而每一個位對應一個管腳的電平,例如當GPIO寄存器的D0位等於1時表示管腳GP0 的電平是高電平。D0位等於0時表示管腳GP0 的電平是低電平。常數2的八位二進製表示是「00000010」  所以,GPIO寄存器存放的8位2進制數的每個位的值以及管腳電平是: 
                                D7對 應於內部總線管腳的電平      D7=0  內部總線管腳輸出低電平              
                                D6對應於內部總線管腳的電平       D6=0  內部總線管腳輸出低電平 
                                D5對應於GP5 管腳的電平            D5=0   GP5 管腳輸出低電平 
                                D4對應於GP4 管腳的電平            D4=0   GP4 管腳輸出低電平 
                                D3對應於GP3 管腳的電平            D3=0   GP3 管腳輸出低電平 
                                D2對應於GP2 管腳的電平            D2=0   GP2 管腳輸出低電平 
                                D1對應於GP1 管腳的電平            D1=1   GP1 管腳輸出低電平      
                                D0對應於GP0 管腳的電平            D0=0   GP0 管腳輸出低電平 
GP0---GP5管腳我們可以從上一講的圖1硬件中查出所對應的管腳。d7 d6 對應的內部時鐘和數據總線我們現在暫且不要管它。以後本事大了在調_教它們。在我們的例句中,向GPIO寄存器寫入了2,常數2的八位二進製表示是「00000010」  因此如果此時GP0, Gp1等都已經被定義成輸出的話,那麼GP1輸出高電平(接LED燈亮),GP0 輸出低電平(所接led燈熄) 。 

       截止到現在,你已經學會如何控制管腳的電平高低了。儘管還有一些疑問,比如怎樣定義管腳為輸出腳(以後會說),我得說如果事先gp1,gp0這兩個管腳處於輸入狀態,這兩個例句無效,是控制不了電平的。 

      無論如何,這一會兒,你就學會了兩個指令,35條我看也沒啥難的。   
                                         
'------------------------------------------------------------------------------ 
                                           
再加深一下對寄存器的認識: 

要把一個常數存儲到,或者說寫到一個寄存器中,僅用一條指令是辦不到的,必須通過一個特殊的寄存器W,把數據倒過去. 這就應該使用到兩個語句。 

movlw   02H    指令的意思是把一個常數存入特殊寄存器W, 這個常數是3,後面的H是表示十六進制 
movwf   GPIO   指令的意思是把特殊寄存器W的數值存入寄存器. 這個寄存器的名稱是 GPIO 

這裡涉及到兩個概念,常數和寄存器. 
常數好說,比如說十進制數 35,  26 但要注意,在單片機系統裡我們一般不用十進制,而使用十六進制. 有關數制轉換方面的知識,是計算機的基礎,必須會熟練地在二進制、十六進制、十進制之間轉換,我就不羅索了. 
寄存器也叫單片機的內存。 
一個寄存器可以存儲的數值範圍是0--255,用十六進製表示就是 0---FFH.用二進製表示就是00000000----11111111. 
以後要養成習慣用十六進製表示數.  

那麼,一個單片機裡有多少個這樣的寄存器哩,pic12ce512里面有1024個這樣的寄存器可以供你使用,為了使用方便生產商已經給它們編上了號碼,第一號碼是000H,往下依照次序為 001H,002H........3FFH.(怎麼樣,開始用十六進制說事了吧,如果你不熟悉熟制轉換趕緊補課來得及) 

有了編號就像我們居住的房間有了房間號碼,使用就方便的多了.房間號碼在郵政行業叫地址,因此我們稱這些號碼叫做寄存器地址,或稱地址數  例如 名稱為 GPIO 的寄存器,他的地址,或地址數是  06H 。所以我們的兩個例句完全等同於: 

my_name006:           movlw  02h      '常數2進入w 
                              movwf  06H      'W 的數進入 寄存器GPIO 
'----------------------------------------- 
有兩個寄存器比較特殊,它們沒有地址,一個名字叫做 W,  另一個叫做 TRIS. 所以他們兩個在存儲數據的時候比較快,一個指令就可以解決問題,例如:    movlw   03H    一條指令就把常數3寫入到W寄存器了。關於TRIS寄存器,我們以後用到它再說. 
除了他們兩個以外的其他所有寄存器,在寫入數據時一般都要用兩條指令進行。 

今天就扯到這裡,雖然只有兩個指令,但主要目的是要同學們接觸一下指令,建立寄存器的概念以及他們同硬件部件的聯繫。增強學習的信心。能有這些體會,這一節就算過關了。 
           隨著以後的深入,你會發現小小單片機裡面是一個大世界,興趣也由此而生。

2012年1月23日 星期一

B-mobile日本北海道使用經驗

2012.1.20-14使用b-mobile的SIM卡在北海道上網,速度實在慢到不行,連在市區也是一樣,最多只能用來在FB打卡,實測速度在0.6K~3K/秒,那來的300K限制,同團的今天訂了一天吃到飽的,也是一樣,慢慢慢,日本不是很進步嗎?誰說日本網路便宜又快了?

2011年12月25日 星期日

解決HP C7280 0xc19a005錯誤的方法

今天印表機不斷出現錯誤,顯示墨水系統錯誤,所以上網找了一下解決方法,Here are the details. Got the Ink System Failure message. The error code shows was '0xc18a0005'. The tech had me press and hold the '*' key on the key pad, then press the '#' key and release them both. Then he had me enter '123' to enter maintenance mode. He then had me press the right arrow (beside the OK button) until System Config. menu appeared on panel. Then pressed OK two times to clear the error condition, then cancel two or three times to return to the top menu. Then powered off and back on, printed a test page just fine, copied a document fine.

2011年11月19日 星期六

使用Little Snitch 2.4.4管理MAC對外網路連線方式

為什麼要用Little Snitch?當然是為了某些軟體,如Final及Adobe master...,在執行過程中可以會去檢查授權,又不可能全時段關閉網路,所以用這個軟體是較為好用的,沒註冊版本在官網說明是每次可用3小時,重新執行又可用3小時,但我用超過3小時仍正常執行,至少可以用就好了。後來為邀免麻煩,還是找到個SN輸進去。