|
Бит в регистре, есть предположение что подгорел один бит в регистре общего назначения |
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 18)
|
Oct 19 2007, 16:49
|

Местный
  
Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459

|
Цитата(bureau @ Oct 19 2007, 19:41)  Есть предположение что подгорел один бит в регистре общего назначения. Можно ли как-то в WinAVR закрыть доступ к этому регистру(не используюя при этом asm вставки). .. Сразу прошу прощения за жестокий офтоПище, ну не удержатся! Вы гражданин "ЖЖоте не по детски"! :-) Спасибо за хорошее настроение на выходные :-D:-D:-D
--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
|
|
|
|
|
Oct 19 2007, 17:03
|

Местный
  
Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459

|
Цитата Т.е. Вы хотите сказать, что так не бывает? Ситуация принципиально возможная, не вижу ничего смешного. ну..ну. такие чипы наверное у атмела в самом охраняемом сейфе лежат, за семью замками, как в музее. bureau - выставите ваш чип на аукцион, его с руками оторвут! серьезно! я готов за такой экспонат 100р. отвалить.. чтобы друзьям показывать. А еще и наспор можно выигрывать бешенные деньги..:-)
--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
|
|
|
|
|
Oct 19 2007, 17:18
|

Местный
  
Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459

|
Цитата Вы серьёзно считаете, что у них выход годной продукции 100%? Нет, я так не считаю. Вопрошающий сказал следующее: Цитата Есть предположение что подгорел один бит в регистре Подгорел в процессе работы с чипом? Очень интересно! :-)
--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
|
|
|
|
|
Oct 19 2007, 17:27
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(add @ Oct 19 2007, 21:18)  Подгорел в процессе работы с чипом? Очень интересно! :-) Просто выразился, наверное, не очень удачно. Да и в процессе работы умереть ему никто не мешает  Интересно было бы услышать ответ bureau.
|
|
|
|
|
Oct 19 2007, 18:38
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(bureau @ Oct 19 2007, 17:41)  Есть предположение что подгорел один бит в регистре общего назначения. 1) в чём выражатеся "подгорание"? 2) есть предложение проверить предположение маленькой тестовой программкой на ассемблере. Цитата(bureau @ Oct 19 2007, 17:41)  Можно ли как-то в WinAVR закрыть доступ к этому регистру(не используюя при этом asm вставки). Например так что б он вообще не юзал R25, а вместо него использывал R18 или какой-то другой... Не выйдет без перепиливания напильником и пересборки. Ключ -ffixed-имя_регистра существует, но с R25 не выйдет, так как они из оснвоной рабочей пары R25:R24, в которой передаётся первый аргумент и возвращается значение.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Oct 20 2007, 15:52
|

Знающий
   
Группа: Свой
Сообщений: 625
Регистрация: 22-02-07
Пользователь №: 25 593

|
Цитата(add @ Oct 19 2007, 19:49)  Сразу прошу прощения за жестокий офтоПище, ну не удержатся! Вы гражданин "ЖЖоте не по детски"! :-) Спасибо за хорошее настроение на выходные :-D:-D:-D Кому смешно а кому и нет... Если заказ надо сдать через 2 часа а заменить нечем... Цитата(aaarrr @ Oct 19 2007, 19:56)  2 bureau: Что заставило сделать такое предположение? в начале просто сделал анализ режима работы и asm кода, который генерил WinAVR. Потом просто написал программку на asm "ЭХО" отправляю по ЮАРТу FF с компа и назад принимаю. Попробывал R16, обратно приходит FF, сделал mov R25, R16 и отправляю по ЮАРТу R25, принимаю FD. Если поставлю вместо R25 другой регистр то все нормально, а при R25 FD Цитата(add @ Oct 19 2007, 20:03)  ну..ну. такие чипы наверное у атмела в самом охраняемом сейфе лежат, за семью замками, как в музее. bureau - выставите ваш чип на аукцион, его с руками оторвут! серьезно! я готов за такой экспонат 100р. отвалить.. чтобы друзьям показывать. А еще и наспор можно выигрывать бешенные деньги..:-) ну если есть желающие то пожалуста... Цитата(add @ Oct 19 2007, 20:18)  Подгорел в процессе работы с чипом? Очень интересно! :-) Да, в процесе работы...
Сообщение отредактировал bureau - Oct 20 2007, 15:56
|
|
|
|
|
Oct 20 2007, 16:34
|

Местный
  
Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459

|
Цитата начале просто сделал анализ режима работы и asm кода хорошо бы код в студию. может у Вас всетаки програмная ошибка? А то шаманство какоето...
--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
|
|
|
|
|
Oct 20 2007, 16:55
|

Знающий
   
Группа: Свой
Сообщений: 625
Регистрация: 22-02-07
Пользователь №: 25 593

|
Цитата(add @ Oct 20 2007, 19:34)  хорошо бы код в студию. может у Вас всетаки програмная ошибка? А то шаманство какоето... делал проверку вот такой программкой .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
|
|
|
|
|
Oct 20 2007, 17:45
|

Местный
  
Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459

|
Как я понимаю проект уже сдан/сроки прошли. Сейчас разбор полетов. Код конечео путанный :-).. Пока явно причину порчи не вижу. Порекомендовал бы Вам поаккуратнее со стеком работать. Поставте на вектор Цитата 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 сведите проверку до минимума. Может диодиком помигать, а то длинная цепочка получается. Программа работает на другм чипе, с теми же условиями?(Вы говорили что заменить нечем....?!)
--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
|
|
|
|
|
Oct 21 2007, 01:41
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата делал проверку вот такой программкой У меня есть более простая программка для проверки R25 Код ldi R25, 0xFF out DDRB, R25 out PORTB, R25
loop: rjmp loop Тестером померяйте - на всех выводах порта B должно быть "1". Цитата(aaarrr @ Oct 19 2007, 19:56)  Т.е. Вы хотите сказать, что так не бывает? Ситуация принципиально возможная, не вижу ничего смешного. Да - не бывает. Ситуация действительно похожа на "Отжиг"  Вместо того чтобы проверить регистр вызывающий сомнения, автор приводит программку которая включает кучу периферии в режиме прерываний, при этом обработчик есть только для UART RXC (прерывание от которого запрещено)  Естессно такая программа будет глючить.
|
|
|
|
|
Oct 22 2007, 08:58
|

Знающий
   
Группа: Свой
Сообщений: 625
Регистрация: 22-02-07
Пользователь №: 25 593

|
Да, я с вами соглашусь. Некоторые строчки возможно лишние. Причиной этому служит то что код брался с другой программы, которая так же работала и с другой переферией. Просо навсего я поднял этот код и на быструю руку повыбрасывал все что на первый взгляд ненужно... Цитата(add @ Oct 20 2007, 20:45)  Если пересылать другой код, вместо ff, данные не считая этого бита верные? любой другой код который содержит во втором бите "1" в ответе принимаю во втором бите "0" 2 defunct: да, а проверка с использыванием порта это идея, как-то не подумал... сенкс
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|