|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
GCC高人再來(lái)看一下。 |
| 作者:bn777 欄目:單片機(jī) |
代碼: void set(void) { CHAR f_num=1; PORTB|=_BV(PB2); while(bit_is_clear(PINC,PC0)); while(f_num<>5) { while(bit_is_set(PIND,PD3)) { disp_buf[3]=14; disp_buf[2]=10; disp_buf[1]=f_num; disp_buf[0]=14; disp(); if(bit_is_clear(PINC,PC1)) { f_num++; while(bit_is_clear(PINC,PC1)); } if(bit_is_clear(PIND,PD2)) { f_num--; while(bit_is_clear(PIND,PD2)); } if(f_num<1) f_num=1; if(f_num>5) f_num=5; } while(bit_is_clear(PIND,PD3)); SWITCH(f_num) { case 1: key_dt(pub_data[1],23,0,12); key_dt(pub_data[0],59,0,13); break; case 2: key_dt(pub_data[3],12,1,12); key_dt(pub_data[2],31,1,13); break; case 3: key_dt(pub_data[4],199,0,12); key_dt(pub_data[5],99,0,13); break; case 4: break; case 5: save(); break; } } PORTB&=0XFB; } 錯(cuò)誤提示: > "make.exe" all -------- begin -------- avr-gcc (GCC) 3.4.3 COPYRIGHT (C) 2004 Free SOFTWARE Foundation, Inc. This is free SOFTWARE; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Size before: main.elf : section size addr .text 1166 0 .data 20 8388704 .bss 31 8388724 .noinit 0 8388755 .EEPROM 0 8454144 .debug_aranges 20 0 .debug_pubnames 303 0 .debug_info 977 0 .debug_abbrev 384 0 .debug_line 1198 0 .debug_str 317 0 Total 4416 AVR MEMORY Usage: ----------------- DEVICE: ATMEGA8 Program: 1186 bytes (14.5% Full) (.text + .data + .bootloader) Data: 51 bytes (5.0% Full) (.data + .bss + .noinit) Compiling: main.c avr-gcc -c -mmcu=ATMEGA8 -I. -gdwarf-2 -DF_CPU=8000000UL -Os -funsigned-CHAR -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.lst -std=gnu99 -MD -MP -MF .dep/main.o.d main.c -o main.o main.c: In function `save': main.c:40: warning: array subscript has type `CHAR' main.c:40: warning: array subscript has type `CHAR' main.c:47: warning: array subscript has type `CHAR' main.c: In function `load': main.c:59: warning: array subscript has type `CHAR' main.c:59: warning: array subscript has type `CHAR' main.c:59: warning: cast to pointer from integer of different size main.c:66: warning: array subscript has type `CHAR' main.c:66: warning: cast to pointer from integer of different size main.c: In function `disp': main.c:83: warning: array subscript has type `CHAR' main.c:83: warning: array subscript has type `CHAR' main.c: In function `set': main.c:183: error: parse error before '>' token main.c: At top level: main.c:205: error: parse error before "while" main.c:210: error: parse error before '[' token main.c:210: warning: type defaults to `int' in declaration of `key_dt' main.c:210: warning: function declaration isn't a prototype main.c:210: warning: data definition has no type or storage class main.c:214: error: parse |
| 2樓: | >>參與討論 |
| 作者: bbear 于 2005/12/2 17:20:00 發(fā)布:
上面的最后一句改為 void set(void) { CHAR f_num=1; PORTB|=_BV(PB2); while(bit_is_clear(PINC,PC0)); while(f_num<>5) { 從你的程序的其他語(yǔ)句看來(lái),上面的最后一句改為: while(f_num != 5) { 應(yīng)該可以通過(guò)編譯。 當(dāng)然也有可能是 while(f_num << 5) { 或 while(f_num >> 5) { //呵呵 |
|
| 3樓: | >>參與討論 |
| 作者: bn777 于 2005/12/2 17:37:00 發(fā)布:
試試! |
|
| 4樓: | >>參與討論 |
| 作者: bn777 于 2005/12/2 17:41:00 發(fā)布:
中了!謝謝! 牛人! |
|
| 5樓: | >>參與討論 |
| 作者: qjy_dali 于 2005/12/2 18:36:00 發(fā)布:
真是好笑 我是第一次在C中見(jiàn)到f_num<>5這種寫(xiě)法的。樓主是不是想判斷不等于,在C中,這應(yīng)該是 f_num!=5 這和GCC還沒(méi)關(guān)系呢,只是C本身 |
|
| 6樓: | >>參與討論 |
| 作者: bn777 于 2005/12/2 22:33:00 發(fā)布:
見(jiàn)笑了,用C編程頭一次,以前都用匯編。 我也不知道怎么會(huì)寫(xiě)了個(gè)<>,不過(guò)我還是比較佩服bbear老兄,他一眼就看出了我想表達(dá)的是不等。 |
|
| 7樓: | >>參與討論 |
| 作者: biansf2001 于 2005/12/6 9:03:00 發(fā)布:
<>是vb的語(yǔ)法 |
|
| 8樓: | >>參與討論 |
| 作者: qjy_dali 于 2005/12/6 14:44:00 發(fā)布:
這就是學(xué)習(xí)多種語(yǔ)言帶來(lái)的副作用,呵呵 |
|
| 9樓: | >>參與討論 |
| 作者: chenfeng08 于 2005/12/8 10:44:00 發(fā)布:
我也是第一次用ICCAVR編程,出現(xiàn)了這樣的問(wèn)題. 程序是: #include<io8535v.h> #define uCHAR unsigned CHAR #define uint unsigned int void DelayMs (uint i) {uint j; for(;i!=0;i--) {for(j=8000;j!=0;j--);} } void Horse(uCHAR i) {SWITCH(i) {case 1:PORTA=0x01;break; case 2:PORTA=0x03;break; case 3:PORTA=0x07;break; case 4:PORTA=0x0f;break; case 5:PORTA=0x1f;break; case 6:PORTA=0x3f;break; case 7:PORTA=0x7f;break; case 8:PORTA=0xff;break; default:break;} } void main(void) {uCHAR i; DDRA=0xff; PORTA=0xff; PORTA=0x00; DelayMs(1000); while(1) {for(i=0;i<9;i++) {Horse(i); DelayMs(1000);} for(i=7;i!=0;i--) {Horse(i); DelayMs(1000); } } } 信息是: c:\icc\bin\imakew -f yang1.mak c:\icc\bin\imakew.exe:Don't know how to make /io8535v.h Done: there are error(s).Exit code:1 請(qǐng)問(wèn)一下這是什么一回事? 謝謝! |
|
| 10樓: | >>參與討論 |
| 作者: chenfeng08 于 2005/12/8 10:47:00 發(fā)布:
請(qǐng)指點(diǎn)一下,謝謝 是用ICCAVR, |
|
| 11樓: | >>參與討論 |
| 作者: xzliu 于 2005/12/8 13:19:00 發(fā)布:
在ICC中試了一下 把Horse函數(shù) case 8: 那一行后面多于字符去掉即可 程序排的亂七八糟 |
|
| 12樓: | >>參與討論 |
| 作者: javie 于 2005/12/8 15:44:00 發(fā)布:
呵呵,少學(xué)一點(diǎn)語(yǔ)言 學(xué)精一點(diǎn) |
|
| 13樓: | >>參與討論 |
| 作者: chenfeng08 于 2005/12/9 8:44:00 發(fā)布:
謝謝! 把Horse函數(shù) case 8: 那一行后面多于字符去掉即可 javie: 你好,看到你的回復(fù),很高興,也非常感謝你. 可我也看不出CASE 8:這一行有多于的字符,請(qǐng)說(shuō)清楚一點(diǎn), 可以嗎? 謝謝! |
|
| 14樓: | >>參與討論 |
| 作者: xzliu 于 2005/12/9 10:41:00 發(fā)布:
真郁悶 明明是俺說(shuō)了真話(huà),javie只對(duì)他說(shuō)了“呵呵”,可javie排名51,他就謝謝人家,這年頭,和明星在一起總是吃虧。javie你回答他吧 |
|
| 15樓: | >>參與討論 |
| 作者: chenfeng08 于 2005/12/9 16:05:00 發(fā)布:
哈哈! xzliu 哈哈!真不好意思,一時(shí)大意,把名字給弄錯(cuò)了, 我是要感謝你的,你能自己親手調(diào)試. 我是剛開(kāi)始學(xué)AVR的,也是剛走進(jìn)這一行, 很想交一些朋友, 交個(gè)朋友吧! 謝謝! |
|
| 16樓: | >>參與討論 |
| 作者: xzliu 于 2005/12/10 8:56:00 發(fā)布:
在這里幫過(guò)忙的都是朋友 網(wǎng)絡(luò)真是好,有問(wèn)題就發(fā)上來(lái),很快就有回復(fù)。俺就是一有問(wèn)題就發(fā)上來(lái),一兩天就有了答案 |
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |