|
Какую максимальную частоту можно считать с портов контроллера?, LPC2478 |
|
|
|
 |
Ответов
|
Apr 18 2011, 07:36
|
Частый гость
 
Группа: Участник
Сообщений: 184
Регистрация: 11-09-08
Пользователь №: 40 121

|
Был бы рад краткому курсу по asm LPC ) Код void CameraTest(void) {
BYTE str1[40]; SCS |= 0x1; FIO0DIR_bit.P0_22 = 0; #define HSYNC FIO0PIN_bit.P0_22 FIO2DIR_bit.P2_22 = 0; #define PCLK FIO2PIN_bit.P2_22 DWORD PixelCount = 0; bool FlagReady = false; while(1) { while(HSYNC == 1); PixelCount = 0; while(HSYNC == 0); while(1) { if(HSYNC == 0) break; if(PCLK == 1) { if(FlagReady) { //BmpBuff[PixelCount] = 0x56; PixelCount ++; FlagReady = false; } } else FlagReady = true; } sprintf((char*)str1,"%u",PixelCount); lcd_put_str(10, 28, str1, 0x00FFFFFF,0); } } Вот этотим кусочком я пытаюсь сосчитать стробы. Подскажите, как он на asm выглядеь будет?
|
|
|
|
|
Apr 18 2011, 08:04
|
Частый гость
 
Группа: Участник
Сообщений: 184
Регистрация: 11-09-08
Пользователь №: 40 121

|
Цитата(kovigor @ Apr 18 2011, 13:52)  А вы посмотрите файл листинга и узнаете. От себя добавлю, что ваша идея почти наверняка обречена на неудачу. 4.5МГц - это явно очень быстро. А современные компиляторы генерируют ну почти оптимальный код, и чтобы сделать лучше, программируя на ассемблере, придется серьезно потрудиться ... CODE 59 void CameraTest(void) 60 { \ CameraTest: \ 00000000 30402DE9 PUSH {R4,R5,LR} \ 00000004 2CD04DE2 SUB SP,SP,#+44 61 62 BYTE str1[40]; 63 64 SCS |= 0x1; \ 00000008 ........ LDR R0,??DataTable1 ;; 0xe01fc1a0 \ 0000000C 000090E5 LDR R0,[R0, #+0] \ 00000010 010090E3 ORRS R0,R0,#0x1 \ 00000014 ........ LDR R1,??DataTable1 ;; 0xe01fc1a0 \ 00000018 000081E5 STR R0,[R1, #+0] 65 FIO0DIR_bit.P0_22 = 0; \ 0000001C FF05A0E3 MOV R0,#+1069547520 \ 00000020 FF0980E3 ORR R0,R0,#0x3FC000 \ 00000024 000090E5 LDR R0,[R0, #+0] \ 00000028 4008D0E3 BICS R0,R0,#0x400000 \ 0000002C FF15A0E3 MOV R1,#+1069547520 \ 00000030 FF1981E3 ORR R1,R1,#0x3FC000 \ 00000034 000081E5 STR R0,[R1, #+0] 66 #define HSYNC FIO0PIN_bit.P0_22 67 FIO2DIR_bit.P2_22 = 0; \ 00000038 FF01E0E3 MVN R0,#-1073741761 \ 0000003C FE0DC0E3 BIC R0,R0,#0x3F80 \ 00000040 000090E5 LDR R0,[R0, #+0] \ 00000044 4008D0E3 BICS R0,R0,#0x400000 \ 00000048 FF11E0E3 MVN R1,#-1073741761 \ 0000004C FE1DC1E3 BIC R1,R1,#0x3F80 \ 00000050 000081E5 STR R0,[R1, #+0] 68 #define PCLK FIO2PIN_bit.P2_22 69 DWORD PixelCount = 0; \ 00000054 0000A0E3 MOV R0,#+0 \ 00000058 0040B0E1 MOVS R4,R0 70 bool FlagReady = false; \ 0000005C 0000A0E3 MOV R0,#+0 \ 00000060 0050B0E1 MOVS R5,R0 71 72 while(1) 73 { 74 while(HSYNC == 1); \ ??CameraTest_0: \ ??CameraTest_1: \ 00000064 AF01E0E3 MVN R0,#-1073741781 \ 00000068 FF0DC0E3 BIC R0,R0,#0x3FC0 \ 0000006C 000090E5 LDR R0,[R0, #+0] \ 00000070 400810E2 ANDS R0,R0,#0x400000 \ 00000074 200BB0E1 LSRS R0,R0,#+22 \ 00000078 010050E3 CMP R0,#+1 \ 0000007C F8FFFF0A BEQ ??CameraTest_1 75 PixelCount = 0; \ 00000080 0000A0E3 MOV R0,#+0 \ 00000084 0040B0E1 MOVS R4,R0 76 while(HSYNC == 0); \ ??CameraTest_2: \ 00000088 AF01E0E3 MVN R0,#-1073741781 \ 0000008C FF0DC0E3 BIC R0,R0,#0x3FC0 \ 00000090 000090E5 LDR R0,[R0, #+0] \ 00000094 400810E2 ANDS R0,R0,#0x400000 \ 00000098 200BB0E1 LSRS R0,R0,#+22 \ 0000009C 000050E3 CMP R0,#+0 \ 000000A0 F8FFFF0A BEQ ??CameraTest_2 77 while(1) 78 { 79 if(HSYNC == 0) break; \ ??CameraTest_3: \ 000000A4 AF01E0E3 MVN R0,#-1073741781 \ 000000A8 FF0DC0E3 BIC R0,R0,#0x3FC0 \ 000000AC 000090E5 LDR R0,[R0, #+0] \ 000000B0 400810E2 ANDS R0,R0,#0x400000 \ 000000B4 200BB0E1 LSRS R0,R0,#+22 \ 000000B8 000050E3 CMP R0,#+0 \ 000000BC 0B00001A BNE ??CameraTest_4 80 if(PCLK == 1) 81 { 82 if(FlagReady) 83 { 84 //BmpBuff[PixelCount] = 0x56; 85 PixelCount ++; 86 FlagReady = false; 87 } 88 } 89 else FlagReady = true; 90 } 91 sprintf((char*)str1,"%u",PixelCount); \ 000000C0 0420B0E1 MOVS R2,R4 \ 000000C4 ........ ADR R1,??DataTable0 ;; 0x25, 0x75, 0x00, 0x00 \ 000000C8 04008DE2 ADD R0,SP,#+4 \ 000000CC ........ BL sprintf 92 lcd_put_str(10, 28, str1, 0x00FFFFFF,0); \ 000000D0 0000A0E3 MOV R0,#+0 \ 000000D4 00008DE5 STR R0,[SP, #+0] \ 000000D8 FF34E0E3 MVN R3,#-16777216 \ 000000DC 04208DE2 ADD R2,SP,#+4 \ 000000E0 1C10A0E3 MOV R1,#+28 \ 000000E4 0A00A0E3 MOV R0,#+10 \ 000000E8 ........ BL _Z11lcd_put_strttPhjj \ 000000EC DCFFFFEA B ??CameraTest_0 \ ??CameraTest_4: \ 000000F0 AF01E0E3 MVN R0,#-1073741781 \ 000000F4 FE0DC0E3 BIC R0,R0,#0x3F80 \ 000000F8 000090E5 LDR R0,[R0, #+0] \ 000000FC 400810E2 ANDS R0,R0,#0x400000 \ 00000100 200BB0E1 LSRS R0,R0,#+22 \ 00000104 010050E3 CMP R0,#+1 \ 00000108 0600001A BNE ??CameraTest_5 \ 0000010C FF5015E2 ANDS R5,R5,#0xFF ;; Zero extend \ 00000110 000055E3 CMP R5,#+0 \ 00000114 E2FFFF0A BEQ ??CameraTest_3 \ 00000118 014094E2 ADDS R4,R4,#+1 \ 0000011C 0000A0E3 MOV R0,#+0 \ 00000120 0050B0E1 MOVS R5,R0 \ 00000124 DEFFFFEA B ??CameraTest_3 \ ??CameraTest_5: \ 00000128 0100A0E3 MOV R0,#+1 \ 0000012C 0050B0E1 MOVS R5,R0 \ 00000130 DBFFFFEA B ??CameraTest_3 \ 00000134 REQUIRE _A_SCS \ 00000134 REQUIRE _A_FIO0DIR \ 00000134 REQUIRE _A_FIO0PIN \ 00000134 REQUIRE _A_FIO2DIR \ 00000134 REQUIRE _A_FIO2PIN 93 } 94 } Может вы своим провессиональным взглядом, что подскажите??? Где, что надо умотать, чтобы шустрее работало. У меня даже 1 мегагерц сейчас пиксели пропускаются.
Сообщение отредактировал IgorKossak - Apr 18 2011, 08:05
Причина редактирования: [codebox] !!!
|
|
|
|
Сообщений в этой теме
Prinz Какую максимальную частоту можно считать с портов контроллера? Apr 15 2011, 11:24 scifi Для точного захвата внешних сигналов следует испол... Apr 15 2011, 11:30 Prinz Цитата(scifi @ Apr 15 2011, 17:30) Для то... Apr 15 2011, 11:37  kovigor Цитата(Prinz @ Apr 15 2011, 14:37) И как ... Apr 15 2011, 12:02   Prinz Цитата(kovigor @ Apr 15 2011, 18:02) Боюс... Apr 18 2011, 05:33 Rst7 Строб заводите на ножку прерывания. Режим для этог... Apr 16 2011, 15:12    Prinz Цитата(kovigor @ Apr 18 2011, 14:17) А вы... Apr 18 2011, 08:35     Слесарь Цитата(Prinz @ Apr 18 2011, 12:35) Мне на... Apr 18 2011, 08:36      Prinz Цитата(Слесарь @ Apr 18 2011, 14:36) Тогд... Apr 18 2011, 08:46       scifi Цитата(Prinz @ Apr 18 2011, 12:46) Я не в... Apr 18 2011, 11:16        ViKo Цитата(scifi @ Apr 18 2011, 14:16) Лучше ... Apr 18 2011, 11:33         Prinz Цитата(ViKo @ Apr 18 2011, 17:33) Наверно... Apr 18 2011, 11:38          ViKo Цитата(Prinz @ Apr 18 2011, 14:38) А како... Apr 18 2011, 11:59 Слесарь Я при тактовой частоте 24 мГц PIC контроллера, уст... Apr 18 2011, 08:18 Слесарь проблема может статься в задержке распространения ... Apr 18 2011, 08:58 Prinz Цитата(Слесарь @ Apr 18 2011, 14:58) проб... Apr 18 2011, 09:10 Слесарь У тебя есть осцилограф
Если бы у меня был осц... Apr 18 2011, 09:21 Prinz Цитата(Слесарь @ Apr 18 2011, 15:21) У те... Apr 18 2011, 09:28  Слесарь Цитата(Prinz @ Apr 18 2011, 13:28) Я так ... Apr 18 2011, 09:47   Prinz Цитата(Слесарь @ Apr 18 2011, 15:47) Мало... Apr 18 2011, 09:53 ViKo Цитата(Слесарь @ Apr 18 2011, 12:21) Если... Apr 18 2011, 11:07  Prinz Цитата(ViKo @ Apr 18 2011, 17:07) У меня ... Apr 18 2011, 11:12 Prinz Коллеги, кто ещё что посоветует?
Прерывание счиате... Apr 18 2011, 10:58 Rst7 Во-первых, я не помню, но посмотрите, есть ли в Ва... Apr 18 2011, 12:10 Prinz Цитата(Rst7 @ Apr 18 2011, 18:10) Во-перв... Apr 19 2011, 07:39 Prinz Кодvoid CameraTest(BYTE *BmpBuff)
92 {... Apr 19 2011, 09:51 Rst7 QUOTE Сделал, по Вашему совету.
Разве я вам такое... Apr 19 2011, 10:56 Prinz Цитата(Rst7 @ Apr 19 2011, 16:56) Разве я... Apr 19 2011, 11:21 Rst7 QUOTE Я его пробовал, он почему-то хуже работает.
... Apr 19 2011, 11:26 Prinz Цитата(Rst7 @ Apr 19 2011, 17:26) Покажит... Apr 19 2011, 12:04 Rst7 QUOTE Я бы не писал это ересь, если бы она не рабо... Apr 19 2011, 12:57 Prinz Цитата(Rst7 @ Apr 19 2011, 18:57) Ага, то... Apr 20 2011, 04:57 Rst7 Вы бы все-таки огласили параметры тактового сигнал... Apr 20 2011, 07:58 Prinz Цитата(Rst7 @ Apr 20 2011, 13:58) Вы бы в... Apr 20 2011, 08:48 Rst7 QUOTE Ну только ради Вас:
Это я и так понимаю. А ... Apr 20 2011, 10:25 Prinz Цитата(Rst7 @ Apr 20 2011, 16:25) Это я и... Apr 20 2011, 10:50 Flexz А обязательно по PCLK синхронизироваться каждый ра... Apr 20 2011, 11:23 Prinz Цитата(Flexz @ Apr 20 2011, 17:23) А обяз... Apr 20 2011, 12:07 Rst7 QUOTE он же стабильный и кратный частоте проца.
Э... Apr 20 2011, 12:27 Prinz Цитата(Rst7 @ Apr 20 2011, 18:27) .
1) Ч... Apr 21 2011, 05:57 Rst7 QUOTE 1) Что-то мой иар не знает __delay_cycles дл... Apr 21 2011, 08:09 Prinz Накатал кодик:
Код__ramfunc unsigned int GetScanL... Apr 21 2011, 08:46 Rst7 QUOTE Оцените, пожалуйста.
Ересь какая-то. У Вас ... Apr 21 2011, 10:09 Prinz Цитата(Rst7 @ Apr 21 2011, 16:09) Ересь к... Apr 21 2011, 10:12 Rst7 QUOTE А что нельзя, в начале один раз затактироват... Apr 21 2011, 10:15 Prinz Цитата(Rst7 @ Apr 21 2011, 16:15) Нельзя,... Apr 21 2011, 11:27 Rst7 QUOTE Это должно быть так!?
Уберите вот эти _... Apr 21 2011, 11:53 Prinz Цитата(Rst7 @ Apr 21 2011, 17:53) Уберите... Apr 22 2011, 04:58 Rst7 QUOTE Что нет так?
Ну надо точно засинхронизирова... Apr 22 2011, 06:44 Prinz Цитата(Rst7 @ Apr 22 2011, 12:44) Ну надо... Apr 22 2011, 08:28 Rst7 QUOTE 1,125 MHz Поднимает на ура и железно.
Это е... Apr 22 2011, 08:50 Prinz Цитата(Rst7 @ Apr 22 2011, 14:50) Это еще... Apr 22 2011, 08:58 Rst7 QUOTE 6 всё равно маловато, надо 9 )
Вы бы опреде... Apr 22 2011, 09:11 Prinz Цитата(Rst7 @ Apr 22 2011, 15:11) Вы бы о... Apr 22 2011, 09:34 Rst7 QUOTE 4.5 это нормальный результат. В идеале надо ... Apr 22 2011, 09:53 Prinz Цитата(Rst7 @ Apr 22 2011, 15:53) Можно и... Apr 22 2011, 10:12 Rst7 QUOTE Тоесть его писать самому? Его нет в библиоте... Apr 22 2011, 10:26 Prinz Цитата(Rst7 @ Apr 22 2011, 16:26) Посмотр... Apr 22 2011, 10:32
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|