|
Похоже баг CPU core ATTiny26 |
|
|
|
Jan 18 2006, 09:20
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Наступил на неприятность:
char TestR26(void) { asm("CLI"); asm("PUSH R26 "); asm("PUSH R27 "); asm("LDI R26,0x80"); asm("LDI R27,0x03"); //Обратите внимание на значение!!! asm("LD R16,X+"); asm("MOV R16,R27"); asm("POP R27 "); asm("POP R26 "); asm("SEI"); }
Результат должен быть 3, а получается 0. Странно.
Наступил, когда у меня начало запарывать R27, в котором IAR положил переменную, а при вызове функций не сохранял (как собственно и должно быть) - модель ведь tiny.
Вообщем в Атмел я уже отписал, посмотрим, как среагируют.
PS Все таки сомнения гложут, посмотрите всE, вроде 3 - должно получиться на выходе (R16), а выходит 0
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
 |
Ответов
|
Jan 18 2006, 13:22
|
Частый гость
 
Группа: Свой
Сообщений: 79
Регистрация: 13-01-06
Из: Москва
Пользователь №: 13 133

|
Добрый день. Вы гденибудь читали в документации, что обращение к памяти SRAM по адресу 0x0380 будет обрабатываться также как обращение по адресу 0х0080 ? Я такого там не видел, думаю, что претензии в этом случае неправомерны. Зато, и это уже обсуждалось на другом форуме, в Tiny26 есть другие грабли: 1. напряжение встроенного опорного источника имеет очень широкий разброс от экземпляра к экземпляру до 2,8 в 2. в документации написано: Цитата If a different data channel is selected while a conversion is in progress, the ADC will finish the current conversion before performing the channel change. Так вот, у меня при попытке сменить канал сразу или через 2-3 команды после запуска АЦП на однократное преобразование результат преобразования был испорчен. Пришлось отказаться от переключения канала до окончания преобразования. Было это год назад.
|
|
|
|
|
Jan 18 2006, 13:39
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата(Gennadiy_ @ Jan 18 2006, 15:22)  Добрый день. Вы гденибудь читали в документации, что обращение к памяти SRAM по адресу 0x0380 будет обрабатываться также как обращение по адресу 0х0080 ? Я такого там не видел, думаю, что претензии в этом случае неправомерны. Я ожидаю, что при выполнении сл. действий: X=0x380; LD R16,X+; будет в регистровой паре X число 0x381. Этого не происходит. Цитата Зато, и это уже обсуждалось на другом форуме, в Tiny26 есть другие грабли: 1. напряжение встроенного опорного источника имеет очень широкий разброс от экземпляра к экземпляру до 2,8 в 2. в документации написано: Цитата If a different data channel is selected while a conversion is in progress, the ADC will finish the current conversion before performing the channel change. Так вот, у меня при попытке сменить канал сразу или через 2-3 команды после запуска АЦП на однократное преобразование результат преобразования был испорчен. Пришлось отказаться от переключения канала до окончания преобразования. Было это год назад. Это не имеет отношения к обсуждаемому вопросу.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
Сообщений в этой теме
Rst7 Похоже баг CPU core ATTiny26 Jan 18 2006, 09:20 Rash Попробуй вначале записать адрес r27, а потом r26
К... Jan 18 2006, 09:28 Rst7 Цитата(Rash @ Jan 18 2006, 11:28) Попробу... Jan 18 2006, 09:36 solidreg У иеня всё равотает. ищите проблемы в друой месте ... Jan 18 2006, 09:58 Rst7 Цитата(solidreg @ Jan 18 2006, 11:58) У и... Jan 18 2006, 10:17 Георгий Ошибка мне кажется в написании самой тестовой функ... Jan 18 2006, 10:31 solidreg Попробуйте вобще без IAR'a. Только ASM. Интере... Jan 18 2006, 10:31 Maxim В Attiny26 всего 128 байт памяти (RAM) и контролер... Jan 18 2006, 10:38 Rst7 Цитата(Maxim @ Jan 18 2006, 12:38) В Atti... Jan 18 2006, 10:53 Георгий Проверил этот кусок у себя - нормально. Так что да... Jan 18 2006, 10:40 solidreg >> Вопрос к тем, кто писал "У меня все... Jan 18 2006, 11:10 Rst7 Цитата(solidreg @ Jan 18 2006, 13:10) ... Jan 18 2006, 11:24 prottoss Зачем, при памяти в 128 байт грузить указатель 16-... Jan 18 2006, 12:27 Rst7 Цитата(prottoss @ Jan 18 2006, 14:27) Зач... Jan 18 2006, 13:19  prottoss Цитата(Rst7 @ Jan 18 2006, 20:19) Цитата(... Jan 18 2006, 13:52   Rst7 Цитата(prottoss @ Jan 18 2006, 15:52) Изв... Jan 18 2006, 14:10  defunct Цитата(Rst7 @ Jan 18 2006, 15:39) Я ожида... Jan 18 2006, 19:10   Rst7 Цитата(defunct @ Jan 18 2006, 21:10) Цита... Jan 19 2006, 06:35    defunct Цитата(Rst7 @ Jan 19 2006, 08:35) Вы невн... Jan 19 2006, 08:28     Rst7 Цитата(defunct @ Jan 19 2006, 10:28) Цита... Jan 19 2006, 08:39      defunct Цитата(Rst7 @ Jan 19 2006, 10:39) Как Вы ... Jan 19 2006, 09:37 Rst7 Вообщем так. Вытащил свежий 8-bit AVR Instruction ... Jan 18 2006, 15:14 beer_warrior А портиться только после Х+/Х- ?
При обычном испол... Jan 18 2006, 16:50 Rst7 Я тоже сделал код:
Код#include "iotiny26.h... Jan 19 2006, 10:57 ObitJr Бинарники смотрели ? Может криво компилятор генери... Jan 19 2006, 11:55 Rst7 Цитата(ObitJr @ Jan 19 2006, 13:55) Бинар... Jan 19 2006, 12:07  prottoss Цитата(Rst7 @ Jan 19 2006, 19:07) Цитата(... Jan 19 2006, 13:07   Rst7 Цитата(prottoss @ Jan 19 2006, 15:07) Цит... Jan 19 2006, 13:25 Rst7 Попробовал на Tiny2313 - все пучком, на порту 0x55... Jan 19 2006, 13:50 KRS А вы пробовали другой экземпляр Tiny26
у меня как ... Jan 19 2006, 14:01 Rst7 Цитата(KRS @ Jan 19 2006, 16:01) А вы про... Jan 19 2006, 14:16
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|