-
- "Это только состоятельному человеку под силу"(с) Раз зашол сюда то как не помочь по телесисовской памяти? :-)Короче, Евгений, это получится немножко неуклюжо но жить можно. Писать придется так asm("sbi _A_PORTB - 0x20, 1"); тоесть ВасилийС(303 знак., 28.05.2012 13:08, )
- Насколько я понял вопрос, вам нужно к переменной добавить префикс, относящий её к регистровой, и обращаться к этой переменной по имени. По факту обращение будет идти к регистру. - Ralex(28.05.2012 11:33)
- А не приведёте пример что именно вам понятно? Как использовать asm-функции? Или Inline asssembler? Мне вот совершенно непонятно. Apтём(71 знак., 28.05.2012 02:49)
- хочу писать не asm( "LDS R16, 0x0060" ); а asm( "LDS R16, WDTCSR" ); При этом не писать описания регистров, в надежде что надо где-то что то прочекбоксить чтобы подключилось. Мне не лень, и интересует переносимость на IAR прочих компов. Это должно MegaJohn(31 знак., 28.05.2012 21:10)
- А по-моему это Си и без вставок может делать. Bill(10 знак., 29.05.2012 17:40)
- все очень хитро: MegaJohn(2497 знак., 29.05.2012 18:15)
- Может то он может, конечно. Но судя по тому что упоминается регистр WDTCSR, тут важно не только то что он может, но то как быстро он может: запись в этот регистр должно произоити не более чем за 4 такта. И например, я недавно обнаружил ситуацию Apтём(249 знак., 29.05.2012 17:55)
- у нас общая ситуация ! С тем же борюсь. Давеча на телесисах писал про траблу и решили её, а теперь смотрю и фиг там - оптимизатор мне нафтыкал лишних инструкций (либо новая версия, либо оптимизиция по другому настроена). Пока помогло pragma MegaJohn(90 знак., 29.05.2012 18:02)
- А разве нельзя манипуляции с вачдогом выделить в отдельный Сишный блок, скажем, inline - функцию и перед ним объявить "pragma optimize = none"?Согласно докам, "This pragma directive only affects the function that follows immediately vpv(98 знак., 29.05.2012 21:28, )
- вообще, от должно быть аля Intrinsics от IAR: типо __watchdog_disable() и т.п. Но увы нет такого - MegaJohn(29.05.2012 18:05)
- Я так сделал: написал в асм-файле функцию которая ставит в wdt период 0,5 секунды Apтём(688 знак., 29.05.2012 18:37)
- у нас общая ситуация ! С тем же борюсь. Давеча на телесисах писал про траблу и решили её, а теперь смотрю и фиг там - оптимизатор мне нафтыкал лишних инструкций (либо новая версия, либо оптимизиция по другому настроена). Пока помогло pragma MegaJohn(90 знак., 29.05.2012 18:02)
- Это должно быть задано в каком-нибудь файле. Компилятор откуда-то берет эти вещи, значит, они где-то описаны. Очевидно, это контроллеро-зависимо, значит, где-то в инклюдах на конкретно эту мегу. - Ralex(29.05.2012 15:24)
- I need your help - MegaJohn(29.05.2012 15:20)
- А по-моему это Си и без вставок может делать. Bill(10 знак., 29.05.2012 17:40)
- хочу писать не asm( "LDS R16, 0x0060" ); а asm( "LDS R16, WDTCSR" ); При этом не писать описания регистров, в надежде что надо где-то что то прочекбоксить чтобы подключилось. Мне не лень, и интересует переносимость на IAR прочих компов. Это должно MegaJohn(31 знак., 28.05.2012 21:10)
- в iom168.inc нет описания регистров,только биты описаны - MegaJohn(27.05.2012 21:50)