討論區快速選單
知識庫快速選單
程式設計俱樂部Facebook粉絲團 軟體開發過程中有哪些資安漏洞?
[ 回上頁 ] [ 討論區發言規則 ]
串列式RGB LED的C語言該如何撰寫?
更改我的閱讀文章字型大小
作者 : h87997779(Hades)
[ 貼文 25 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/3 下午 04:51:13
最近在練習RGB LED的C語言寫法
但是網路上都找不到相關的資訊,也沒有人分享寫法,主要是利用for函數想要讓LED可以給我操控,目前連亮都無法是最大的問題
PS:LED型號是:LTC106-F8
作者 : ozzy123(ozzy) VC++優秀好手資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4499 | 人氣 37262 | 評價 11100 | 評價/貼文 2.47 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/3 下午 10:06:14
http://www.codeproject.com/Questions/281743/Make-LED-ON-OFF-continuously-using-serial-port
https://www.daniweb.com/software-development/c/code/442262/blink-led-serial-port-rts-pin
http://www.lammertbies.nl/comm/cable/RS-232.html - rs232 concepts
https://en.wikibooks.org/wiki/Serial_Programming - a tutorial about serial programming
作者 : ozzy123(ozzy) VC++優秀好手資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4499 | 人氣 37262 | 評價 11100 | 評價/貼文 2.47 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/3 下午 10:14:21
http://softwaresouls.com/softwaresouls/2013/07/29/programming-serial-port-communications/
作者 : ozzy123(ozzy) VC++優秀好手資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4499 | 人氣 37262 | 評價 11100 | 評價/貼文 2.47 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/3 下午 10:15:21
http://www.codeproject.com/Articles/382/CSerialPort-v1-03-Serial-Port-Wrapper
作者 : ozzy123(ozzy) VC++優秀好手資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4499 | 人氣 37262 | 評價 11100 | 評價/貼文 2.47 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/4 上午 12:31:00
sorry , above links are useless. if you use avr or arm to control the LED , maybe following codes is a reference
https://github.com/cpldcpu/light_ws2812
作者 : ozzy123(ozzy) VC++優秀好手資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4499 | 人氣 37262 | 評價 11100 | 評價/貼文 2.47 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/4 上午 12:36:58
and there is a tutorial about how to control RGB led on arduino.

https://arduino-info.wikispaces.com/RGB-LED

check it out :)
作者 : h87997779(Hades)
[ 貼文 25 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/4 上午 08:42:42
上面那些都不能用唉@@
我只是單純要接上USB後可以讓他啟動,不另外操作輸入,所以都是直接燒在IC裡讓他直接通電後直接啟動發量顯示顏色等
PS.IC是ATMEGA8
作者 : ozzy123(ozzy) VC++優秀好手資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4499 | 人氣 37262 | 評價 11100 | 評價/貼文 2.47 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/4 上午 08:56:30
http://www.mikrocontroller.net/topic/190791

see this post . maybe it is available. use atmel's pwm

http://www.electroschematics.com/9529/atmega8-basic-input-output-interfacing-1/

ATmega8 I/O interfaces tutorial as above url .
作者 : h87997779(Hades)
[ 貼文 25 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/4 上午 10:05:33
可是他是4隻腳 第1隻腳Dout接下一顆LED的Din(第4隻腳)而第2隻腳GND第3隻腳VCC,並不是3隻腳分別為red.green.blue耶
作者 : kagaya(kagaya) VC++優秀好手C++優秀好手貼文超過1000則人氣指數超過30000點
[ 貼文 1602 | 人氣 38709 | 評價 4610 | 評價/貼文 2.88 | 送出評價 115 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/4 上午 11:13:41
沒程式碼沒電路圖 沒人知道你錯在哪
http://ltc.com.tw/IMAGES/DL8WZ106.PDF
datasheet才兩頁 照著做吧....
作者 : ozzy123(ozzy) VC++優秀好手資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4499 | 人氣 37262 | 評價 11100 | 評價/貼文 2.47 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/4 下午 12:25:05
you may refer to above specification - package format and transmits their values . try it !
作者 : h87997779(Hades)
[ 貼文 25 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/4 下午 01:31:00
我就是這樣接的,只是第一顆LED的Din接到ATMEGA8的PD0腳,目前可以恆亮但無法控制顏色
現在語法是
int A[23] = {0xff,0xff,0xff};

int main(void)
{
for(i=0;i<=23;i++)
{
{
if (A[i] == 0)
{
PORTD = (1 << PD0);
_delay_us(0.35);
PORTD = (0 << PD0);
_delay_us(1.36);
}
if (A[i] == 1)
{
PORTD = (1 << PD0);
_delay_us(1.36);
PORTD = (0 << PD0);
_delay_us(0.35);
}
}
{
if (A[i] == 0)
{
PORTD = (1 << PD0);
_delay_us(0.35);
PORTD = (0 << PD0);
_delay_us(1.36);
}
if (A[i] == 1)
{
PORTD = (1 << PD0);
_delay_us(1.36);
PORTD = (0 << PD0);
_delay_us(0.35);
}
}
{
if (A[i] == 0)
{
PORTD = (1 << PD0);
_delay_us(0.35);
PORTD = (0 << PD0);
_delay_us(1.36);
}
if (A[i] == 1)
{
PORTD = (1 << PD0);
_delay_us(1.36);
PORTD = (0 << PD0);
_delay_us(0.35);
}
}
PORTD = (1 << PD0);
_delay_us(50);
     }
}
}
作者 : kagaya(kagaya) VC++優秀好手C++優秀好手貼文超過1000則人氣指數超過30000點
[ 貼文 1602 | 人氣 38709 | 評價 4610 | 評價/貼文 2.88 | 送出評價 115 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/4 下午 02:34:01
1. int A[23] = {0xff,0xff,0xff};
你想定義24個 結果你寫23 對嗎? 只塞3個值 對嗎?

2. PORTD = (1 << PD0);
這裡為何要位移? 還拿Pin腳來位移? 不覺得奇怪嗎?

3._delay_us(50);
信號開始結束都要RESET datasheet是這樣寫的吧?
作者 : kagaya(kagaya) VC++優秀好手C++優秀好手貼文超過1000則人氣指數超過30000點
[ 貼文 1602 | 人氣 38709 | 評價 4610 | 評價/貼文 2.88 | 送出評價 115 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/4 下午 02:44:59
我沒寫過 所以有沒有錯不知道 你可以試試

int A[3] = {0xff,0x00,0x00}; //unsigned int
int i, j;

int main(void)
{
    PD0 = 0;
    _delay_us(50);
    for(i=0;i<3;i++)
    {
     for(j=7;j>=0;j--)
     {
     if (((A[i] >> j)&0x01) == 0)
     {
     PD0 = 1;
     _delay_us(0.35);
     PD0 = 0;
     _delay_us(1.36);
     }
     else
{
     PD0 = 1;
     _delay_us(1.36);
     PD0 = 0;
     _delay_us(0.35);
     }
     }
     }
     PD0 = 0;
     _delay_us(50);
}
作者 : h87997779(Hades)
[ 貼文 25 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/4 下午 03:09:55
PD0 = 0;
PD0 = 1;
這2行無法製成hex會顯示lvalue required as left operand of assignment
所以我一樣改回原本的
PORTD=(0 << PD0);
PORTD=(1 << PD0);
這2個意思是0代表低態1代表高態((之前學長教的他之前練習也是這樣寫只是不是RGB LED但IC同一顆
至於int A[23]是想表示0~23(共24個但是最大到23而且24跟23都打過都無效...
作者 : h87997779(Hades)
[ 貼文 25 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/4 下午 03:15:14
忘了說,我開始跟結束前面都會多
PORTD = (1 << PD0);
是設定為高態,如果是設成低態
PORTD = (0 << PD0);
或是沒有的話都會變成閃一下藍色就沒有了
作者 : h87997779(Hades)
[ 貼文 25 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/4 下午 03:34:33
目前知道了,是delay沒有副程式= =
但是還不知道怎麼寫還在研究
所以缺少delay副程式delay給多少都沒用@@
作者 : kagaya(kagaya) VC++優秀好手C++優秀好手貼文超過1000則人氣指數超過30000點
[ 貼文 1602 | 人氣 38709 | 評價 4610 | 評價/貼文 2.88 | 送出評價 115 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/4 下午 03:57:38
所以不能直接指定 PD0
但是你用 PORTD = (1 << PD0); 的話
假設PORTD有8隻腳 那麼另外7隻腳會清空
你該用 PORTD |= (1 << PD0); 來避免

根據datasheet RESET是低態

_delay_us 通常是用迴圈去延時
你可以參考同晶片的範例或算指令clock或用邏輯分析儀去測
作者 : ozzy123(ozzy) VC++優秀好手資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4499 | 人氣 37262 | 評價 11100 | 評價/貼文 2.47 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/4 下午 04:36:05
lvalue required as left operand of assignment

this is a common compiler error . it posted a message that programmer assign a Lvalue to Rvalue , such likes 0=var .
you should use below statements

PORTD |= (1<<PD0); // Led ON
PORTD &= ~(1<<PD0); // Led OFF
 


作者 : h87997779(Hades)
[ 貼文 25 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/5 上午 08:29:17
目前是缺少delay副程式所以無法達到LED的要求1信號高態1.36us低態0.35us
所以等於目前只是通電無信號輸入,目前我是先把delay負程式用出來試試看
作者 : h87997779(Hades)
[ 貼文 25 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/5 上午 09:34:54
現在delay處理好了會有作用,但還是無法顯示顏色
目前程式碼是
int A[23] = {1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int main(void)
{
PORTD |= (1 << PD0);
_delay_us(50);
for(;;)
{
{
if (A[i] == 0)
{
PORTD = (1 << PD0);
_delay_us(0.35);
PORTD = (0 << PD0);
_delay_us(1.36);
}
if (A[i] == 1)
{
PORTD = (1 << PD0);
_delay_us(1.36);
PORTD = (0 << PD0);
_delay_us(0.35);
}
}
     }
PORTD |= (1 << PD0);
_delay_us(50);
}

要讓他結束後保持著顏色(紅色)不用讓LED關閉,所以最後一行還是使用PORTD |= (1 << PD0);不是PORTD &= ~(1 << PD0);
作者 : kagaya(kagaya) VC++優秀好手C++優秀好手貼文超過1000則人氣指數超過30000點
[ 貼文 1602 | 人氣 38709 | 評價 4610 | 評價/貼文 2.88 | 送出評價 115 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/5 上午 10:46:14
>A[23]

你還在23 唉。。。

>for(;;)
>A[i]

愈寫愈莫名奇妙了
建議先好好看完C的書打好基礎

>_delay_us(1.36);

附帶一提 delay函式通常是傳入整數(小數你寫得出來?)
所以你需要的是 delay_ns 或是 delay_10ns
先確定你的晶片速度有到這個等級吧
作者 : h87997779(Hades)
[ 貼文 25 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/5 上午 11:18:34
我現在直接把delay_us 改成1跟2先看波型,但無輸出
for(;;)是在看波型才這樣打的
作者 : h87997779(Hades)
[ 貼文 25 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/5 上午 11:25:41
現在是
int A[24] = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
int main(void)
{
for(i=0;i<=26;i++)
{
PORTD |= (0 << PD0);
_delay_us(50);

if (A[i] == 1)
{
PORTD |= (1 << PD0);
_delay_us(1);
PORTD |= (0 << PD0);
_delay_us(2);
}
PORTD |= (0 << PD0); //open LED
_delay_us(50);
}
}
只是單純想看delay是否有用但這樣在市波器上還是沒有
作者 : kagaya(kagaya) VC++優秀好手C++優秀好手貼文超過1000則人氣指數超過30000點
[ 貼文 1602 | 人氣 38709 | 評價 4610 | 評價/貼文 2.88 | 送出評價 115 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人h87997779註記此篇回應為最佳解答 2015/8/5 下午 03:08:12
<pre>
int main(void)
{
    while(1)
    {
     PORTD |= (1 << PD0);
     _delay_us(1);
     PORTD &= ~(1 << PD0);
     _delay_us(2);
    }
}

測量吧
</pre>
作者 : h87997779(Hades)
[ 貼文 25 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/5 下午 04:00:31
真的可以了@@ 好厲害阿
目前是全部設定成最簡單的1輸出應該是白色
int A[24] = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
int main(void)
{
for(i=0;i<=25;i++)
{
if (i = 0)
{
//PORTD = (0 << PD0);
_delay_us(50);
}
if (A[i] == 1)
{
PORTD |= (1 << PD0);
_delay_us(1.36);
PORTD &= (0 << PD0);
_delay_us(0.35);
}
//PORTD = (0 << PD0); //open LED
//PORTD &= ~(1 << PD0); //close LED
_delay_us(50);
}
}


那個我想改ns但無法輸出,delay.h檔要更改,但是我剛剛試著打1.5us示波器可看到
輸入與輸出的低態不知該如何改一次只能打一個不然輸出又會有問題了(看示波器出來的)
作者 : kagaya(kagaya) VC++優秀好手C++優秀好手貼文超過1000則人氣指數超過30000點
[ 貼文 1602 | 人氣 38709 | 評價 4610 | 評價/貼文 2.88 | 送出評價 115 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/5 下午 04:19:34
所以你
_delay_us(1.36);
量出來真的是1.36us嗎?
作者 : ozzy123(ozzy) VC++優秀好手資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4499 | 人氣 37262 | 評價 11100 | 評價/貼文 2.47 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/5 下午 05:49:31
http://mayer.spaces.eepw.com.cn/articles/article/item/49542
this page has been described their calculations

作者 : h87997779(Hades)
[ 貼文 25 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/5 下午 11:05:30
是的,出來真的是1.36,但是第二個打太小都會偏調,如果打delay_us 10的畫出來OK,不過打到5或1以下就會偏調,尤其是1,但是第一組沒這問題,不知道是不是有什麼地方要修正?

完整函式只有
int main(void)
for(;;)
{
PORTD |= (1 << PD0);
_delay_us(1.36);
PORTD &= (0 << PD0);
_delay_us(0.35);
}

PORTD &= (0 << PD0);部分有打過
PORTD &= (1 << PD0);
PORTD &= ~(0 << PD0);
PORTD &= ~(1 << PD0);
PORTD |= (0 << PD0);
PORTD |= (1 << PD0);
都不能顯示比較正確,是真的delay太小關係嗎?
作者 : h87997779(Hades)
[ 貼文 25 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/6 上午 08:24:51
那個delay.h檔有再改,原本預設是1000000最大把它改到5000000000他就無作用了會變成雜訊,但還要試試看最多可以到多少是可顯示正常的
作者 : h87997779(Hades)
[ 貼文 25 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/6 上午 10:14:17
都試過了,最大只能100MHz也就是F_CPU 100000000UL
但一樣沒用@@
作者 : kagaya(kagaya) VC++優秀好手C++優秀好手貼文超過1000則人氣指數超過30000點
[ 貼文 1602 | 人氣 38709 | 評價 4610 | 評價/貼文 2.88 | 送出評價 115 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/6 上午 10:24:28
>要讓他結束後保持著顏色(紅色)不用讓LED關閉

所以你能顯示紅色了?

>都試過了,最大只能100MHz也就是F_CPU 100000000UL

那個要看你晶片晶振的速度去設定 不是讓你亂填的.....
作者 : h87997779(Hades)
[ 貼文 25 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/6 上午 10:48:45
目前只在看能否輸出需要的delay所以目前還沒到控制顏色

晶片速度要怎麼查@@因為我都是一直試
作者 : kagaya(kagaya) VC++優秀好手C++優秀好手貼文超過1000則人氣指數超過30000點
[ 貼文 1602 | 人氣 38709 | 評價 4610 | 評價/貼文 2.88 | 送出評價 115 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/6 上午 11:29:18
>是的,出來真的是1.36,

如果你1.36是對的 那表示原本的設定是對的 根本不用去調
0.35是錯的 表示速度不到那個等級
但容許的誤差是150ns 如果在這範圍內 還是可以做
作者 : kagaya(kagaya) VC++優秀好手C++優秀好手貼文超過1000則人氣指數超過30000點
[ 貼文 1602 | 人氣 38709 | 評價 4610 | 評價/貼文 2.88 | 送出評價 115 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/6 下午 12:05:23
調回原本的值 再試試看吧


int A[24] = {1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int i;

int main(void)
{
    PORTD |= (1 << PD0);
    PORTD &= ~(0 << PD0);
    _delay_us(50);
    for(i=0;i<24;i++)
    {
     if (A[i] == 0)
     {
     PORTD |= (1 << PD0);
     _delay_us(0.35);
     PORTD &= ~(0 << PD0);
     _delay_us(1.36);
     }
     else
{
     PORTD |= (1 << PD0);
     _delay_us(1.36);
     PORTD &= ~(0 << PD0);
     _delay_us(0.35);
     }
    }
    PORTD |= (1 << PD0);
    PORTD &= ~(0 << PD0);
     _delay_us(50);
    PORTD |= (1 << PD0);
}
作者 : h87997779(Hades)
[ 貼文 25 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/6 下午 01:15:05
這樣打不行唉
一樣藍色恆亮,然後示波器輸出都是1沒有高低態
作者 : h87997779(Hades)
[ 貼文 25 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/6 下午 01:18:35
忘了說,第二個0.35那部份應該不只150ns內,我如果打0.5us的話會變成出來會變成4.多us而第一個0.5us是正常顯示的
我delay.h部分有改回來,改跟沒改都有試過結果都一樣@@
作者 : kagaya(kagaya) VC++優秀好手C++優秀好手貼文超過1000則人氣指數超過30000點
[ 貼文 1602 | 人氣 38709 | 評價 4610 | 評價/貼文 2.88 | 送出評價 115 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/6 下午 02:09:08
看不懂你在說什麼 你打0.5us幹嘛 又不需要
那麼你這樣量 到底量出什麼?
只會量出兩個值吧 是多少?

int main(void)
{
    while(1)
    {
     PORTD |= (1 << PD0);
     _delay_us(0.35);
     PORTD &= ~(1 << PD0);
     _delay_us(1.36);
    }
}
作者 : h87997779(Hades)
[ 貼文 25 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/6 下午 02:17:15
我說的0.5us是之前在測量的時候打的數值,那已經超過他150ns的範圍了

話說那段會讓LED閃@@一樣不會變色唉
作者 : taishyang(阿泰)
[ 貼文 11 | 人氣 0 | 評價 20 | 評價/貼文 1.82 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/6 下午 03:57:54
我是路過的^^

建議
#define Led_On() PORTD |= (1 << PD0)
#define Led_Off() PORTD &= ~(1 << PD0);

另外
確定 _delay_us() 可接受浮點數的參數嗎 ^^?
     _delay_us(0.35);
     _delay_us(1.36);

直覺上是以1us為單位

作者 : taishyang(阿泰)
[ 貼文 11 | 人氣 0 | 評價 20 | 評價/貼文 1.82 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/6 下午 03:58:02
我是路過的^^

建議
#define Led_On() PORTD |= (1 << PD0)
#define Led_Off() PORTD &= ~(1 << PD0);

另外
確定 _delay_us() 可接受浮點數的參數嗎 ^^?
     _delay_us(0.35);
     _delay_us(1.36);

直覺上是以1us為單位

作者 : h87997779(Hades)
[ 貼文 25 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/6 下午 04:06:12
對阿,我示波器每格1us我設定輸出0.5us他大約在0.5∼0.6不滿1格

你那2行我加上去了也是一樣,這東西看起來簡單怎麼那麼難阿
作者 : taishyang(阿泰)
[ 貼文 11 | 人氣 0 | 評價 20 | 評價/貼文 1.82 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/6 下午 04:23:42
改成用macro的方式只是為了看起來比較直覺罷了

你的 _delay_us 如何實作? 把code放上來看一下吧
作者 : h87997779(Hades)
[ 貼文 25 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/6 下午 04:33:13
int main(void)
{
for(;;)
{
PORTD |= (1 << PD0);
_delay_us(1.5);
PORTD &= ~(1 << PD0);
_delay_us(0.35);
}
}
這只是測量用而已
第一段的1.5部分都OK(0.5也是)但第二段0.35部分不管整數或小數都不準確最少都會放大一倍以上
作者 : taishyang(阿泰)
[ 貼文 11 | 人氣 0 | 評價 20 | 評價/貼文 1.82 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/6 下午 04:42:23
所以才要看你的 _delay_us() 如何實作? 把code放上來看一下吧
作者 : h87997779(Hades)
[ 貼文 25 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/6 下午 04:44:53
/* Copyright (c) 2002, Marek Michalkiewicz
   Copyright (c) 2004,2005,2007 Joerg Wunsch
   Copyright (c) 2007 Florin-Viorel Petrov
   All rights reserved.

   Redistribution and use in source and binary forms, with or without
   modification, are permitted provided that the following conditions are met:

   * Redistributions of source code must retain the above copyright
     notice, this list of conditions and the following disclaimer.

   * Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in
     the documentation and/or other materials provided with the
     distribution.

   * Neither the name of the copyright holders nor the names of
     contributors may be used to endorse or promote products derived
     from this software without specific prior written permission.

  this SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS and CONTRIBUTORS "AS IS"
  and ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  IMPLIED WARRANTIES OF MERCHANTABILITY and FITNESS for A PARTICULAR PURPOSE
  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  LIABLE for ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  INTERRUPTION) HOWEVER CAUSED and ON ANY THEORY OF LIABILITY, WHETHER IN
  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  ARISING IN ANY WAY OUT OF THE USE OF this SOFTWARE, EVEN if ADVISED OF THE
  POSSIBILITY OF SUCH DAMAGE. */

/* $Id: delay.h,v 1.5.2.1 2009/02/25 10:14:03 joerg_wunsch Exp $ */

#ifndef _UTIL_DELAY_H_
#define _UTIL_DELAY_H_ 1

#include <inttypes.h>
#include <util/delay_basic.h>

/** \file */
/** \defgroup util_delay <util/delay.h>: Convenience functions for busy-wait delay loops
    \code
    #define F_CPU 1000000UL // 1 MHz
    //#define F_CPU 14.7456E6
    #include <util/delay.h>
    \endcode

    \note as an alternative method, it is possible to pass the
    F_CPU macro down to the compiler from the Makefile.
    Obviously, in that case, no \c \#define statement should be
    used.

    The functions in this header file are wrappers around the basic
    busy-wait functions from <util/delay_basic.h>. They are meant as
    convenience functions where actual time values can be specified
    rather than a number of cycles to wait for. The idea behind is
    that compile-time constant expressions will be eliminated by
    compiler optimization so floating-point expressions can be used
    to calculate the number of delay cycles needed based on the CPU
    frequency passed by the macro F_CPU.

    \note In order for these functions to work as intended, compiler
    optimizations <em>must</em> be enabled, and the delay time
    <em>must</em> be an expression that is a known constant at
    compile-time. if these requirements are not met, the resulting
    delay will be much longer (and basically unpredictable), and
    applications that otherwise do not use floating-point calculations
    will experience severe code bloat by the floating-point library
    routines linked into the application.

    The functions available allow the specification of microsecond, and
    millisecond delays directly, using the application-supplied macro
    F_CPU as the CPU clock frequency (in Hertz).

*/

#if !defined(__DOXYGEN__)
static inline void _delay_us(double __us) __attribute__((always_inline));
static inline void _delay_ms(double __ms) __attribute__((always_inline));
#endif

#ifndef F_CPU
/* prevent compiler error by supplying a default */
# warning "F_CPU not defined for <util/delay.h>"
# define F_CPU 10000000UL
#endif

#ifndef __OPTIMIZE__
# warning "Compiler optimizations disabled; functions from <util/delay.h> won't work as designed"
#endif

/**
   \ingroup util_delay

   Perform a delay of \c __ms milliseconds, using _delay_loop_2().

   The macro F_CPU is supposed to be defined to a
   constant defining the CPU clock frequency (in Hertz).

   The maximal possible delay is 262.14 ms / F_CPU in MHz.

   When the user request delay which exceed the maximum possible one,
   _delay_ms() provides a decreased resolution functionality. In this
   mode _delay_ms() will work with a resolution of 1/10 ms, providing
   delays up to 6.5535 seconds (independent from CPU frequency). The
   user will not be informed about decreased resolution.
 */
void
_delay_ms(double __ms)
{
uint16_t __ticks;
double __tmp = ((F_CPU) / 4e3) * __ms;
if (__tmp < 1.0)
__ticks = 1;
else if (__tmp > 65535)
{
// __ticks = requested delay in 1/10 ms
__ticks = (uint16_t) (__ms * 10.0);
while(__ticks)
{
// wait 1/10 ms
_delay_loop_2(((F_CPU) / 4e3) / 10);
__ticks --;
}
return;
}
else
__ticks = (uint16_t)__tmp;
_delay_loop_2(__ticks);
}

/**
   \ingroup util_delay

   Perform a delay of \c __us microseconds, using _delay_loop_1().

   The macro F_CPU is supposed to be defined to a
   constant defining the CPU clock frequency (in Hertz).

   The maximal possible delay is 768 us / F_CPU in MHz.

   if the user requests a delay greater than the maximal possible one,
   _delay_us() will automatically call _delay_ms() instead. The user
   will not be informed about this case.
 */
void
_delay_us(double __us)
{
uint8_t __ticks;
double __tmp = ((F_CPU) / 3e6) * __us;
if (__tmp < 1.0)
__ticks = 1;
else if (__tmp > 255)
{
_delay_ms(__us / 1000.0);
return;
}
else
__ticks = (uint8_t)__tmp;
_delay_loop_1(__ticks);
}


#endif /* _UTIL_DELAY_H_ */
作者 : taishyang(阿泰)
[ 貼文 11 | 人氣 0 | 評價 20 | 評價/貼文 1.82 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/6 下午 05:09:07
debug一下就知道為什麼了, 0.35 or 0.5 結果會是一樣的

void
_delay_us(double __us)
{
     uint8_t __ticks;
     double __tmp = ((F_CPU) / 3e6) * __us;
    
     if (__tmp < 1.0)
     __ticks = 1;

     else if (__tmp > 255)
     {
     _delay_ms(__us / 1000.0);
     return;
     }
     else
__ticks = (uint8_t)__tmp; //不論是0.5 or 0.35, 最後__ticks都會是1, 所以....
 
     _delay_loop_1(__ticks);
}
作者 : h87997779(Hades)
[ 貼文 25 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/7 上午 10:36:38
那麼我這邊要修正哪部分??
還是說要換成ns?
作者 : kagaya(kagaya) VC++優秀好手C++優秀好手貼文超過1000則人氣指數超過30000點
[ 貼文 1602 | 人氣 38709 | 評價 4610 | 評價/貼文 2.88 | 送出評價 115 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/7 上午 10:58:55
#define _NOP() do { __asm__ __volatile__ ("nop"); } while (0)

自己測nop的時間是多少?
如果夠小就可以用它
作者 : ozzy123(ozzy) VC++優秀好手資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4499 | 人氣 37262 | 評價 11100 | 評價/貼文 2.47 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/7 下午 12:14:24
nop instruction just needs one clock cycle. http://www.atmel.com/images/Atmel-0856-AVR-Instruction-Set-Manual.pdf
p102 shows its format.
atmega8 datasheet
http://www.atmel.com/images/atmel-2486-8-bit-avr-microcontroller-atmega8_l_datasheet.pdf
 
作者 : wallace_tsou(Wallace) 貼文超過200則
[ 貼文 262 | 人氣 314 | 評價 960 | 評價/貼文 3.66 | 送出評價 7 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/7 下午 01:28:27
http://wukcsoft.blogspot.tw/2015/04/avr-ws2812-led.html
有人做過了,MCU也是同一個。
作者 : wallace_tsou(Wallace) 貼文超過200則
[ 貼文 262 | 人氣 314 | 評價 960 | 評價/貼文 3.66 | 送出評價 7 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人h87997779註記此篇回應為很有道理 2015/8/7 下午 01:48:19
其實我發現用UART就可以控制了。因為需求佔空比為20%及80%。所以使用UART 9bit模式加上一個stop bit時間,剛好可以成立10位元時序。
不過UART要反相使用。所以資料要反相。
因為UART是MSB先出。S=Stop=L,H=0,L=1
20%就是HHLLLLLLLS=0 01111111
80%就是HHHHHHHHLS=0 00000001
Bund Rate = 584795
作者 : wallace_tsou(Wallace) 貼文超過200則
[ 貼文 262 | 人氣 314 | 評價 960 | 評價/貼文 3.66 | 送出評價 7 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/7 下午 01:55:05
記錯UART為LSB先出
20%=HHLLLLLLLS=00111111 1=0x1FC
80%=HHHHHHHHLS=00000000 1=0x100
作者 : h87997779(Hades)
[ 貼文 25 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/7 下午 02:02:04
可是只能使用ATMEGA8耶
是可以用 http://wukcsoft.blogspot.tw/2015/04/avr-ws2812-led.html 這網址的程式碼來參考嗎?只要更改預設時間與輸出腳位就好?
作者 : wallace_tsou(Wallace) 貼文超過200則
[ 貼文 262 | 人氣 314 | 評價 960 | 評價/貼文 3.66 | 送出評價 7 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/7 下午 02:03:21
又搞錯了UART不用反相。是RS232才有反相問題。
S=Stop=L,H=1,L=1
20%=HHLLLLLLLS=11000000 0=0x003
80%=HHHHHHHHLS=11111111 0=0x0FF
作者 : wallace_tsou(Wallace) 貼文超過200則
[ 貼文 262 | 人氣 314 | 評價 960 | 評價/貼文 3.66 | 送出評價 7 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/7 下午 02:07:40
UART是TXD及RXD
逼我去看datasheet
結果還有PWM可以用。
我來用方法多的是...
作者 : wallace_tsou(Wallace) 貼文超過200則
[ 貼文 262 | 人氣 314 | 評價 960 | 評價/貼文 3.66 | 送出評價 7 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/7 下午 02:17:20
用SPI通信腳也可以
因為一共要送出24次資料,一次不是20%就是80%,就設定用10 bit SPI去送。
因為SPI只能送出8 bit,但24筆資料一共要240bit,也就是30個SPI Word要一次送完。
寫個將RGB三byte轉成30個byte的資料格式就可以了。
作者 : wallace_tsou(Wallace) 貼文超過200則
[ 貼文 262 | 人氣 314 | 評價 960 | 評價/貼文 3.66 | 送出評價 7 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人h87997779註記此篇回應為很有道理 2015/8/7 下午 02:38:11
方法1: GPIO法,自己做時序,自己做時間dealy
方法2:利用PWM去送,用中斷做資料更新,去送LED 1bit
方法3:利用USART 9 bit模式,去送LED 1bit
方法4:利用SPI整包資料通信,去送LED 24bit
作者 : kagaya(kagaya) VC++優秀好手C++優秀好手貼文超過1000則人氣指數超過30000點
[ 貼文 1602 | 人氣 38709 | 評價 4610 | 評價/貼文 2.88 | 送出評價 115 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人h87997779註記此篇回應為很有道理 2015/8/7 下午 03:01:43
試試看吧

#define Led_On() PORTD |= (1 << PD0)
#define Led_Off() PORTD &= ~(1 << PD0)
#define _NOP() do { __asm__ __volatile__ ("nop"); } while (0)

int A[24] = {1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int i;

int main(void)
{
    Led_Off();
    _delay_us(50);
    for(i=0;i<24;i++)
    {
     if (A[i] == 0)
     {
     Led_On();
    _NOP();
     Led_Off();
     _delay_us(1.36);
     }
     else
{
     Led_On();
     _delay_us(1.36);
     Led_Off();
     _NOP();
     }
    }
    Led_Off();
     _delay_us(50);
    while(1){}
}
作者 : h87997779(Hades)
[ 貼文 25 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/8/7 下午 03:23:22
這個也不行唉
他都沒反應訊號都是1,他可以像WS2812一樣前段就定義好1跟0信號的高低態跟下方直接用16進制設定顏色嗎?
 板主 : simula
 > C++ - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - C++ - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
C++
1 Raymond 13050 
2 青衫 4760 
3 simula 4690 
4 coco 4030 
5 白老鼠(Gary) 3670 
6 ozzy 2540 
7 Ben 2250 
8 Anderson 1960 
9 windblown 1650 
10 Kenny 1560 
C++
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.34375