Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
26.02.2008, 16:47
|
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
Насчет - не получится.. получится, но долго
Код:
|
81: if(BITTST1(status1_,i))
037 3001 MOVLW 0x1
038 00F0 MOVWF 0x70
039 0821 MOVF 0x21, W
03A 00F1 MOVWF 0x71
03B 0AF1 INCF 0x71, F
03C 283F GOTO 0x3f
03D 1003 BCF 0x3, 0
03E 0DF0 RLF 0x70, F
03F 0BF1 DECFSZ 0x71, F
040 283D GOTO 0x3d
041 0870 MOVF 0x70, W
042 0524 ANDWF 0x24, W
043 1903 BTFSC 0x3, 0x2
044 2846 GOTO 0x46
82: {
83: svet=1;
045 1606 BSF 0x6, 0x4 |
Через массив быстрее, конечно..
Код:
|
unsigned char mas1[8]={1,2,4,8,16,32,64,128};
79: i=3;
032 3003 MOVLW 0x3
033 00A1 MOVWF 0x21
80: test_bit(status1_,i);
034 00A9 MOVWF 0x29
035 0824 MOVF 0x24, W
036 21B6 CALL 0x1b6
//----------------------------------
275: void test_bit(unsigned char reg,unsigned char i)
276: {
277: if (mas1[i] & reg)
1B8 0829 MOVF 0x29, W
1B9 3E2C ADDLW 0x2c
1BA 0084 MOVWF 0x4
1BB 1383 BCF 0x3, 0x7
1BC 0800 MOVF 0, W
1BD 052A ANDWF 0x2a, W
1BE 1903 BTFSC 0x3, 0x2
1BF 0008 RETURN
278: {
279: svet=1;
1C0 1606 BSF 0x6, 0x4 |
|
|
|
|
26.02.2008, 16:55
|
|
Временная регистрация
Регистрация: 14.04.2007
Сообщений: 65
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
О чём я и говорю.
|
|
|
|
26.02.2008, 17:06
|
|
Временная регистрация
Регистрация: 14.04.2007
Сообщений: 65
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Да, классно. Как я раньше о массиве не подумал.Теперь так буду делать.
Кстати, так можно и устанавливать или сбрасывать биты, тоже будет быстро.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 06:22.
|
|