-
- ХЗ. У меня будет PIC18F46K22 на частоте 64 МГц. Время такта соответственно 62,5 нс. Если вход в прерывание будет осуществлён даже за 20 тактов, то времянки уже на грани. - FDA(24.09.2013 10:01)
- Выкиньте контроллер проф. уровня и возьмите PIC24 или AVR, например. И всё сразу начнёт успевать. Потому, что в контроллерах проф. уровня прерывания сделаны через ()() -- на всех общий вектор это раз, компилятор вынужден сохранить огромное fk0(2632 знак., 24.09.2013 10:43)
- Вот так всегда. Вместо того, чтобы дать дельный совет начинается болтовня про говёные контроллеры и т.д. - FDA(24.09.2013 10:52)
- Они таки говённые, по крайней мере там, где нужны быстрые прерывания. 1-wire slave на pic18 я делал, i2c slave тоже делал. И больше бы не связывался. Нельзя на них ничего нормально сделать из-за дурной архитектуры. - fk0(24.09.2013 11:01)
- i2c slave делается элементарно, т.к. там есть аппаратный модуль. Спокойно работает на стандартной частоте 100 кГц. 1-wire slave сейчас накидал, буду испытывать. Пока получилось всего около 100 строк кода. - FDA(24.09.2013 11:08)
- Аппаратный модуль было нельзя использовать. - fk0(24.09.2013 11:24)
- нешта эта однопроводная тема стала активной. мне вот скоро придётся писать мастера 1-wire. только хвала Кришне - на верилоге. - Mahagam(24.09.2013 11:15)
- Покажешь функцию поиска слейвов на верилоге? ;) - Звероящер(24.09.2013 13:26)
- а вот этот КА можно уже переложить на МК. мне главное - избавить МК от ногодрыга. Mahagam(131 знак., 24.09.2013 14:09)
- Использовать для такого дела матрицу - мажорство :) Если только как неосновной алгоритм работы матрицы - Звероящер(25.09.2013 05:23)
- конечно неосновной. ради однодрота никто бы не заморачивался. но приняли решение перейти с TMP04 на DS18B20, вот придётся написать новый модуль - Mahagam(25.09.2013 11:08)
- Чем вызван переход? - amusin(25.09.2013 11:38)
- решили сократить количество проводки, да место в разъёме как-то дорого обходится. датчиков нужно с десяток. - Mahagam(25.09.2013 11:44)
- Чем вызван переход? - amusin(25.09.2013 11:38)
- конечно неосновной. ради однодрота никто бы не заморачивался. но приняли решение перейти с TMP04 на DS18B20, вот придётся написать новый модуль - Mahagam(25.09.2013 11:08)
- Использовать для такого дела матрицу - мажорство :) Если только как неосновной алгоритм работы матрицы - Звероящер(25.09.2013 05:23)
- а вот этот КА можно уже переложить на МК. мне главное - избавить МК от ногодрыга. Mahagam(131 знак., 24.09.2013 14:09)
- Покажешь функцию поиска слейвов на верилоге? ;) - Звероящер(24.09.2013 13:26)
- i2c slave делается элементарно, т.к. там есть аппаратный модуль. Спокойно работает на стандартной частоте 100 кГц. 1-wire slave сейчас накидал, буду испытывать. Пока получилось всего около 100 строк кода. - FDA(24.09.2013 11:08)
- Они таки говённые, по крайней мере там, где нужны быстрые прерывания. 1-wire slave на pic18 я делал, i2c slave тоже делал. И больше бы не связывался. Нельзя на них ничего нормально сделать из-за дурной архитектуры. - fk0(24.09.2013 11:01)
- А кто сказал, что нужно сохранять все регистры при входе в прерывание? - Shura(24.09.2013 10:45)
- А это не все. Это используемые. После долгой оптимизации программы. tablat понятно для чего. prod и btemp используются самим компилятором активно как временный регистр. fsr0 и 1 совершенно точно нужны в операциях x=y. fsr2 тоже где-то... это fk0(73 знак., 24.09.2013 10:55)
- Ну хз, хз. На авре да на асме вообще можно только регистр состояния сохранять. На сях также. Правда там компилятор что-то сам сохраняет. - Звероящер(24.09.2013 13:25)
- На MSP обходился двумя-тремя :-) - Shura(24.09.2013 10:59)
- А в PIC18 12 шт. или 6 шт. 16-битных пар. На MSP430 оно же 16-битное. Потом на MSP430 они, вроде, все ж равнозначные. Нет регистра специально для возврата 16-битного результата из функции, например, отличного от регистра аккумулятора (btemp и fk0(341 знак., 24.09.2013 11:06)
- 4 регистра в MSP не совсем равнозначные (из всех 16-ти адресуемых в командах) - Mahagam(24.09.2013 11:11)
- А в PIC18 12 шт. или 6 шт. 16-битных пар. На MSP430 оно же 16-битное. Потом на MSP430 они, вроде, все ж равнозначные. Нет регистра специально для возврата 16-битного результата из функции, например, отличного от регистра аккумулятора (btemp и fk0(341 знак., 24.09.2013 11:06)
- А это не все. Это используемые. После долгой оптимизации программы. tablat понятно для чего. prod и btemp используются самим компилятором активно как временный регистр. fsr0 и 1 совершенно точно нужны в операциях x=y. fsr2 тоже где-то... это fk0(73 знак., 24.09.2013 10:55)
- Вот так всегда. Вместо того, чтобы дать дельный совет начинается болтовня про говёные контроллеры и т.д. - FDA(24.09.2013 10:52)
- ловите прерыванием задний фронт от мастера и сразу выдаете слэйвом нужный бит, на 99.999% уверен, что это уложится в нужные 15 мкс :) Argon(197 знак., 24.09.2013 10:10 - 10:14)
- Выкиньте контроллер проф. уровня и возьмите PIC24 или AVR, например. И всё сразу начнёт успевать. Потому, что в контроллерах проф. уровня прерывания сделаны через ()() -- на всех общий вектор это раз, компилятор вынужден сохранить огромное fk0(2632 знак., 24.09.2013 10:43)
- а вот и не всегда - у 16х пиков если не путаю, наблюдал вход в прерывание то ли 5 то ли 8 мкс при FOSC = 4 МГц, а ведь надо еще успеть бит сдвинуть, к-рый выдать :) - Argon(24.09.2013 10:00)
- Так это вход. А для срабатывания - достаточно. Дальше есть пауза в 15 мкс, как уже написали - Shura(24.09.2013 10:04)
- ХЗ. У меня будет PIC18F46K22 на частоте 64 МГц. Время такта соответственно 62,5 нс. Если вход в прерывание будет осуществлён даже за 20 тактов, то времянки уже на грани. - FDA(24.09.2013 10:01)