|
tiny2313....непонятки |
|
|
|
Oct 30 2006, 13:35
|

Частый гость
 
Группа: Свой
Сообщений: 167
Регистрация: 14-06-06
Из: Рязань
Пользователь №: 18 052

|
подскажите пожалуста, у меня сложилась такая ситуация - прошил контролер, прога рабочая, все функционирует нормально. с помощью моей платы управления можна програмировать режимы работы для дозатора вязких продуктов. все вроде нормально програмируется и работает, но если нажать кнопку "прог" и подождать секунды 3-5 высвечивается какое то непонятное значение, никак не могу понять откуда оно берется. может кто с этим сталкивался уже???
Прикрепленные файлы
doz.txt ( 17.36 килобайт )
Кол-во скачиваний: 118
|
|
|
|
|
Oct 31 2006, 09:46
|

Местный
  
Группа: Свой
Сообщений: 226
Регистрация: 25-03-05
Из: Беларусь
Пользователь №: 3 672

|
Цитата(Terapefft @ Oct 30 2006, 16:35)  подскажите пожалуста, у меня сложилась такая ситуация - прошил контролер, прога рабочая, все функционирует нормально. с помощью моей платы управления можна програмировать режимы работы для дозатора вязких продуктов. все вроде нормально програмируется и работает, но если нажать кнопку "прог" и подождать секунды 3-5 высвечивается какое то непонятное значение, никак не могу понять откуда оно берется. может кто с этим сталкивался уже??? Судя по этому куску программы pm31: sbrc flag,1 ; rjmp pm31 ; Возврат, если флаг времени не сброшен cli sbr flag,0b00000010 ; Вновь установить флаг времени mov tmp1,key_o ; Проверка - нажата ли еще sbrc tmp1,prog ; кнопка ПРОГ ? rjmp pm1 ; Если нет, то выход. subi TIML,1 ; Вычесть из счетчика sbc TIMH,zero ; sei brcc pm31 ; Если не перенос, то возврат на ожидание ser key_p ; Обработали нажатую кнопку cli ; ldi tmp1,0b10000001 ; индицировать ПРОГ и K(корректировка) or r4,tmp1 ; инициируется програмирование и корректировка, но разбирать чужую программу это неблагодарное дело. Легче написать с нуля новую
--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
|
|
|
|
|
Nov 1 2006, 08:47
|

Местный
  
Группа: Свой
Сообщений: 226
Регистрация: 25-03-05
Из: Беларусь
Пользователь №: 3 672

|
Цитата(Terapefft @ Nov 1 2006, 11:18)  вобще когда включаешь питание на индикаторе загорается число "100", это так и должно быть, но когда жмешь кнопку "прог", по истечении некоторого промежутка времени загорается "08,00" или тоже самое с небольшими отклонениями, причем когда опять нажимаешь "прог" загорается "100", а потом опять "08,00" Попробую разобраться, хотя это и не благодарное дело  копаться в чужих программах
--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
|
|
|
|
|
Nov 2 2006, 07:04
|

Местный
  
Группа: Свой
Сообщений: 226
Регистрация: 25-03-05
Из: Беларусь
Пользователь №: 3 672

|
Цитата(Terapefft @ Nov 2 2006, 08:07)  кстати а на s1200 она работает нормально, ничего лишнего не высвечивается Этот риторический вопрос "Будет ли прошивкадля 1200 на 2313?" Вроде по выводам они одинаковые? Но у 1200 стек аппаратный, а у 2313 програмный. Кроме того , у них разное расположение векторов прерывания. Поэтомусложные программы для 1200 могут работать на 2313 с глюками. В тексте6 вашей програме встречается такое: start: ldi tmp1,low(RAMEND) ; определение начала out SPL,tmp1 ; стэка в ОЗУ cli ldi tmp1,0b00000010 ; out timsk,tmp1 ; ўЄ«озЁвм Timer/Counter0 ldi tmp1,0b00000010 ; out tccr0,tmp1 ; tccr0=0b00000010=CK/8 ldi tmp1,125 ; out tcnt0,tmp1 ; ldi tmp1,0b00010001 ; ЏҐаўл¬ ᢥ⨬ г«Ґў®© ЎЁв mov segon,tmp1 ; как будто уже бала попытка пристроить программу от 1200 для 2313.
--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
|
|
|
|
|
Nov 2 2006, 11:33
|

Частый гость
 
Группа: Свой
Сообщений: 167
Регистрация: 14-06-06
Из: Рязань
Пользователь №: 18 052

|
щас провел эксперимент, прошил 1200 и поставил его, там тоже высвечивается это непонятное значение, только через гораздо больший промежуток времени. и еще когда на тини начинаешь изменять параметры, то индикация слишком быстро изменяется (значение слишком быстро изменяется) вот исходник под 1200
Прикрепленные файлы
doz.txt ( 19.66 килобайт )
Кол-во скачиваний: 96
|
|
|
|
|
Nov 3 2006, 08:45
|

Местный
  
Группа: Свой
Сообщений: 226
Регистрация: 25-03-05
Из: Беларусь
Пользователь №: 3 672

|
Первое, что бросилось в глаза -- это неправильное расположение настройки таймера на прерывания: start: ldi tmp1,low(RAMEND) ; out SPL,tmp1 ; cli ldi tmp1,0b00000010 ; out timsk,tmp1 ; включить Timer/Counter0 ldi tmp1,0b00000010 ; out tccr0,tmp1 ; tccr0=0b00000010=CK/8 ldi tmp1,125 ; out tcnt0,tmp1 ; далее в програме идет, то разрешение, то запрет прерываний clr r0 ; clr r1 ; clr r2 ; clr r3 ; clr r4 ; ldi TIMH,0 ; Пауза ldi TIML,50 ; на 0.5с для задержки rcall pausa ; в ПП pausa есть SEI cli ; любая инициализация переферии и внутренних регистров должна проводиться без прерываний, а настраивать необходимые прерывания надо перед выходом в основной цикл. В данном случае перед меткой begin: Второе: С помощью какого ассемблера проводилось ассемблирование? AVR Studio, при ассемблировании, ругается на оба файла. Третье: Как заметил Alex_Pol установка фузов у тины сложнее чем для S1200  . Если временные задержки просчитывались для определенного кварца (для S1200), то и фузы надо перешить правильно под конкретную частоту. Програма написана "влет" без тщателной отладки, поэтому советую найти серьезного програмиста заплатить ему "немного" мани и избавиться от "гемороя"  .
--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
|
|
|
|
|
Nov 3 2006, 10:05
|

Частый гость
 
Группа: Свой
Сообщений: 167
Регистрация: 14-06-06
Из: Рязань
Пользователь №: 18 052

|
Прога в AVR studio 4.12 нормально компилится. Кварц не используется, тактируется внутреним RC генератором. Я уже переделывал штуки 3 проги под тини, они работают нормально, а вот эта.... Недумаю что начальнику понравится вариант найти програмиста  . Так контролер свои функции выполняет нормально, вот тока эта хрень вылазивает...
|
|
|
|
|
Nov 3 2006, 12:02
|

Местный
  
Группа: Свой
Сообщений: 226
Регистрация: 25-03-05
Из: Беларусь
Пользователь №: 3 672

|
Цитата(Terapefft @ Nov 3 2006, 12:05)  Прога в AVR studio 4.12 нормально компилится. Кварц не используется, тактируется внутреним RC генератором. Я уже переделывал штуки 3 проги под тини, они работают нормально, а вот эта.... Недумаю что начальнику понравится вариант найти програмиста  . Так контролер свои функции выполняет нормально, вот тока эта хрень вылазивает... В ПП "pausa" применяется RJMP pausa1, а такой метки нет: sbrc flag,1 ; rjmp pausa1 ; Возврат, если флаг времени не сброшен sbr flag,0b00000010 ; Вновь установить флаг времени subi TIML,1 ; Вычесть из счетчика А по поводу прошивки определенных экземпляров м/с видел и не такие глюки
--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
|
|
|
|
|
Nov 4 2006, 13:56
|

Частый гость
 
Группа: Свой
Сообщений: 192
Регистрация: 23-03-05
Из: Украина. Днепропетровск
Пользователь №: 3 626

|
Опять та же морока - нет соответствие исходника прошитой программе. Не компилируется она. Студия ругается на неопределённую метку "pausa1". " F:\Dozator\doz.asm(686): error: Undefined symbol: pausa1 F:\Dozator\doz.asm(690): error: Undefined symbol: pausa1 F:\Dozator\doz.asm(690): error: Relative branch out of reach"И, как следствие, ясный пень: "Assembly failed, 3 errors, 19 warnings"Не могли вы скомпилировать этот исходник. Никак. Колитесь, где настоящий исходник?
Сообщение отредактировал Alex_Pol - Nov 4 2006, 14:02
|
|
|
|
|
Nov 7 2006, 05:50
|

Частый гость
 
Группа: Свой
Сообщений: 167
Регистрация: 14-06-06
Из: Рязань
Пользователь №: 18 052

|
Цитата(Alex_Pol @ Nov 4 2006, 16:56)  Опять та же морока - нет соответствие исходника прошитой программе. Не компилируется она. Студия ругается на неопределённую метку "pausa1". " F:\Dozator\doz.asm(686): error: Undefined symbol: pausa1 F:\Dozator\doz.asm(690): error: Undefined symbol: pausa1 F:\Dozator\doz.asm(690): error: Relative branch out of reach"И, как следствие, ясный пень: "Assembly failed, 3 errors, 19 warnings"Не могли вы скомпилировать этот исходник. Никак. Колитесь, где настоящий исходник?  Насколько я понимаю так он ругается когда встречает в проге необъявленные константы, а pausa1 это же метка. И не знаю почему но у меня и этот исходник и который я под тини переделывал нормально компилится (AVR studio 4.12). Может hex выложить? (как это сделать? просто у меня пишет "Ошибка загрузки. У Вас нет прав для загрузки файла с таким расширением.")
|
|
|
|
|
Nov 7 2006, 07:28
|

Частый гость
 
Группа: Свой
Сообщений: 192
Регистрация: 23-03-05
Из: Украина. Днепропетровск
Пользователь №: 3 626

|
Цитата Может hex выложить? (как это сделать? просто у меня пишет "Ошибка загрузки. У Вас нет прав для загрузки файла с таким расширением.") Матерь божья. Поменяй расширение hex на txt.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|