bureau 0 19 октября, 2007 Опубликовано 19 октября, 2007 · Жалоба Пишу программу с использыванием WinAVR. Mega8535. Есть предположение что подгорел один бит в регистре общего назначения. Можно ли как-то в WinAVR закрыть доступ к этому регистру(не используюя при этом asm вставки). Например так что б он вообще не юзал R25, а вместо него использывал R18 или какой-то другой... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
add 0 19 октября, 2007 Опубликовано 19 октября, 2007 · Жалоба Есть предположение что подгорел один бит в регистре общего назначения. Можно ли как-то в WinAVR закрыть доступ к этому регистру(не используюя при этом asm вставки). .. Сразу прошу прощения за жестокий офтоПище, ну не удержатся! Вы гражданин "ЖЖоте не по детски"! :-) Спасибо за хорошее настроение на выходные :-D:-D:-D Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 19 октября, 2007 Опубликовано 19 октября, 2007 · Жалоба Вы гражданин "ЖЖоте не по детски"! :-) Спасибо за хорошее настроение на выходные :-D:-D:-D Т.е. Вы хотите сказать, что так не бывает? Ситуация принципиально возможная, не вижу ничего смешного. 2 bureau: Что заставило сделать такое предположение? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
add 0 19 октября, 2007 Опубликовано 19 октября, 2007 · Жалоба Т.е. Вы хотите сказать, что так не бывает? Ситуация принципиально возможная, не вижу ничего смешного. ну..ну. такие чипы наверное у атмела в самом охраняемом сейфе лежат, за семью замками, как в музее. bureau - выставите ваш чип на аукцион, его с руками оторвут! серьезно! я готов за такой экспонат 100р. отвалить.. чтобы друзьям показывать. А еще и наспор можно выигрывать бешенные деньги..:-) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 19 октября, 2007 Опубликовано 19 октября, 2007 · Жалоба ну..ну. такие чипы наверное у атмела в самом охраняемом сейфе лежат, за семью замками, как в музее. Нет, такие чипы уходят после тестирования в мусор в немалом количестве. Или Вы серьёзно считаете, что у них выход годной продукции 100%? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
add 0 19 октября, 2007 Опубликовано 19 октября, 2007 · Жалоба Вы серьёзно считаете, что у них выход годной продукции 100%? Нет, я так не считаю. Вопрошающий сказал следующее: Есть предположение что подгорел один бит в регистре Подгорел в процессе работы с чипом? Очень интересно! :-) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 19 октября, 2007 Опубликовано 19 октября, 2007 · Жалоба Подгорел в процессе работы с чипом? Очень интересно! :-) Просто выразился, наверное, не очень удачно. Да и в процессе работы умереть ему никто не мешает :) Интересно было бы услышать ответ bureau. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReAl 0 19 октября, 2007 Опубликовано 19 октября, 2007 · Жалоба Есть предположение что подгорел один бит в регистре общего назначения.1) в чём выражатеся "подгорание"? 2) есть предложение проверить предположение маленькой тестовой программкой на ассемблере. Можно ли как-то в WinAVR закрыть доступ к этому регистру(не используюя при этом asm вставки). Например так что б он вообще не юзал R25, а вместо него использывал R18 или какой-то другой...Не выйдет без перепиливания напильником и пересборки. Ключ -ffixed-имя_регистра существует, но с R25 не выйдет, так как они из оснвоной рабочей пары R25:R24, в которой передаётся первый аргумент и возвращается значение. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bureau 0 20 октября, 2007 Опубликовано 20 октября, 2007 (изменено) · Жалоба Сразу прошу прощения за жестокий офтоПище, ну не удержатся! Вы гражданин "ЖЖоте не по детски"! :-) Спасибо за хорошее настроение на выходные :-D:-D:-D Кому смешно а кому и нет... Если заказ надо сдать через 2 часа а заменить нечем... 2 bureau: Что заставило сделать такое предположение? в начале просто сделал анализ режима работы и asm кода, который генерил WinAVR. Потом просто написал программку на asm "ЭХО" отправляю по ЮАРТу FF с компа и назад принимаю. Попробывал R16, обратно приходит FF, сделал mov R25, R16 и отправляю по ЮАРТу R25, принимаю FD. Если поставлю вместо R25 другой регистр то все нормально, а при R25 FD ну..ну. такие чипы наверное у атмела в самом охраняемом сейфе лежат, за семью замками, как в музее. bureau - выставите ваш чип на аукцион, его с руками оторвут! серьезно! я готов за такой экспонат 100р. отвалить.. чтобы друзьям показывать. А еще и наспор можно выигрывать бешенные деньги..:-) ну если есть желающие то пожалуста... Подгорел в процессе работы с чипом? Очень интересно! :-) Да, в процесе работы... Изменено 20 октября, 2007 пользователем bureau Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
add 0 20 октября, 2007 Опубликовано 20 октября, 2007 · Жалоба начале просто сделал анализ режима работы и asm кода хорошо бы код в студию. может у Вас всетаки програмная ошибка? А то шаманство какоето... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bureau 0 20 октября, 2007 Опубликовано 20 октября, 2007 · Жалоба хорошо бы код в студию. может у Вас всетаки програмная ошибка? А то шаманство какоето... делал проверку вот такой программкой .include "m8535def.inc" .def data=R25 ;вместо R25 подставлял разные регистры... .org 0x0000 rjmp main .org URXCaddr rjmp USART_RXC ; USART RX Complete Handler main: ldi r31,low(ramend) out spl,r31 ldi r31, high(ramend) out sph,r31 ldi data, 0x59 MOV zh,data ;cp zh:zl, data rcall USART_Init rcall USART_Transmit USART_Init: ldi r16, (1<<RXEN)|(1<<TXEN) out UCSRB,r16 ;Óñòàíîâêà ôîðìàòà ïîñûëêè: ldi r16, (0<<USBS)|(0<<UMSEL) out UCSRC,r16 nop ldi r17, 12 ldi r16, 0 out UBRRH, r16 out UBRRL, r17 ldi r17, (1<<ISC00)|(1<<ISC01)|(0<<ISC10)|(1<<ISC11)|(0<<SM0)|(0<<SM1)|(0<<SM2)|(1<<SE) out MCUCR, r17 ldi r17, (1<<INT0)|(1<<INT1) out GICR, r17 ldi r16, $61 ret loop: USART_Transmit: sbis UCSRA,UDRE rjmp USART_Transmit mov data, r16 out UDR, data Wait_Transmit: sbis SPSR,SPIF rjmp Wait_Transmit nop nop sei sleep USART_RXC: nop sbis UCSRA, RXC rjmp USART_RXC in r16, UDR rjmp loop Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
add 0 20 октября, 2007 Опубликовано 20 октября, 2007 · Жалоба Как я понимаю проект уже сдан/сроки прошли. Сейчас разбор полетов. Код конечео путанный :-).. Пока явно причину порчи не вижу. Порекомендовал бы Вам поаккуратнее со стеком работать. Поставте на вектор org URXCaddr rjmp USART_RXC ; USART RX Complete Handler просто reti И вместо rcall USART_Transmit rjmp USART_Transmit Если пересылать другой код, вместо ff, данные не считая этого бита верные? Зачем эти строчки? ldi data, 0x59 MOV zh,data ;cp zh:zl, data сведите проверку до минимума. Может диодиком помигать, а то длинная цепочка получается. Программа работает на другм чипе, с теми же условиями?(Вы говорили что заменить нечем....?!) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=GM= 0 20 октября, 2007 Опубликовано 20 октября, 2007 · Жалоба Соглашусь с add, и добавлю, уберите из вашей тестовой программы строки, начиная с Wait_Transmit и кончая sleep. А то непонятно, при чём здесь ожидание конца передачи от SPI и какое прерывание будит процессор из idle и что оно там делает с r25(:-). Оставшегося кода вполне достаточно для организации эха. И запретите все прерывания. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 21 октября, 2007 Опубликовано 21 октября, 2007 · Жалоба делал проверку вот такой программкой У меня есть более простая программка для проверки R25 :) ldi R25, 0xFF out DDRB, R25 out PORTB, R25 loop: rjmp loop Тестером померяйте - на всех выводах порта B должно быть "1". Т.е. Вы хотите сказать, что так не бывает? Ситуация принципиально возможная, не вижу ничего смешного. Да - не бывает. Ситуация действительно похожа на "Отжиг" ;) Вместо того чтобы проверить регистр вызывающий сомнения, автор приводит программку которая включает кучу периферии в режиме прерываний, при этом обработчик есть только для UART RXC (прерывание от которого запрещено) :) Естессно такая программа будет глючить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 21 октября, 2007 Опубликовано 21 октября, 2007 · Жалоба А что, хорошая идея... чтобы твой код куча народа проверило :) По теме - один раз спалил ОЗУ, а процик работал. До первого ret конечно :) Но чтобы бы бит в регистре o_O Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться