ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
А где напрямую? Напряжение на коллекторе транзистора будет в диапазоне 0.3...5V.
- Реклама
- Сообщения: 274
- Зарегистрирован: Чт апр 16, 2009 14:23:59
все , разобрался. Пардон, тупанул по-черному 
- Сообщения: 274
- Зарегистрирован: Чт апр 16, 2009 14:23:59
Никто не сталкивался с такой проблемой: прошиваю программу в Codevision после прошивки компилятор говорит, что все нормально ошибок нет, сравнение памяти мк с программой разницы не дает. Но! Стоит только выключить комп и вынуть мк из программатора-часть прошивки теряется -вместо данных там FFFF, будто чистую память и не прошивали вовсе. Количество потерянной памяти разное бывает.
Со схемой и программой ничего не делалось, изменил лишь значаение числовой переменной.
Со схемой и программой ничего не делалось, изменил лишь значаение числовой переменной.
Cобрал програматор на драйвере 74HC244N пробую залить прошивку в ATtiny2313-20PU и по не известной причине нифига не получается. В чём проблема? Программы для прошивки пробывал IC-Prog,PonyProg и Хамелион. Схема по которой собирал програматор.Ошибок в пайке нет!
MONAH_88, опишите проблему конкретнее.
- Реклама
это конечно плохо, но телепаты в отпуске. опишите симптомы.MONAH_88 писал(а):нифига не получается
Ставим плюсы: )
- Сообщения: 274
- Зарегистрирован: Чт апр 16, 2009 14:23:59
Разобрался с траблой. Собрал простой "5 проводков" и прошил МК все заработало. видимо буфер неисправен на моем STK200/+300. попробую заменить на новый. Что интересно, когда я подключил новый программатор и считал прошивку-она оказалась правильная, но мк не работал, а после перепрошивки на новом прог-ре он уже заработал, хотя сама прошивка 1 в 1 со старой.
- Сообщения: 274
- Зарегистрирован: Чт апр 16, 2009 14:23:59
При настройке пина RESET как выхода, он попрежнему может сбрасывать МК при подаче на него 0, например через светодиод?
Тогда как вы себе представляете работу этого пина как I/O, если при каждом "0" МК будет сбрасываться???NebelWefer писал(а):При настройке пина RESET как выхода, он попрежнему может сбрасывать МК при подаче на него 0, например через светодиод?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Сообщения: 274
- Зарегистрирован: Чт апр 16, 2009 14:23:59
поставил RESET как выход, подцепил на него светодиод. при включении МК уходит в постоянный резет, если оставляю висеть reset-все норм
Вы фьюзом его поставили как обычный порт или просто в тексте проги сконфиговали как выход? 
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Сообщения: 274
- Зарегистрирован: Чт апр 16, 2009 14:23:59
просто в проге
значит надо установить RSTDSBL в ноль...
Не забудте, что после этого контроллер можно будет только параллельным программатором шить. По скольку этот режим не гарантирован для attiny2313, то только высоковольтным программированием! Так что RESET лучше не трогать 
[i]Да здравствует всё то, благодаря чему мы не смотря ни на что![/i]
- Сообщения: 4435
- Зарегистрирован: Сб мар 07, 2009 20:44:36
Мне надо дешифрировать независимо состояние РОН на семисегментный индикатор. Какие средства для этого есть?
Не умеешь - не берись, но не взявшись не научишься...
- Сообщения: 274
- Зарегистрирован: Чт апр 16, 2009 14:23:59
Да спасибо, я уже переделал прошивку, благо свободные ноги есть)AlexFisher писал(а): Так что RESET лучше не трогать
Чаго??? А по-кошачьи?Stalker46 писал(а):Мне надо дешифрировать независимо состояние РОН на семисегментный индикатор.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Сообщения: 4435
- Зарегистрирован: Сб мар 07, 2009 20:44:36
У меня задача.
В обработчике прерывания (не важно какого) состояние одного РОН - должно инкрементироваться 1 раз.
Затем, в этом же обработчике надо интерпретировать содержимое этого же РОНа на семисегментный индикатор.
Вот только как это сделать, можно, конечно же использовать Flash для хранения констант и, использую команду LPM, загружать данные в индикатор... но, хочу другим способом.
В обработчике прерывания (не важно какого) состояние одного РОН - должно инкрементироваться 1 раз.
Затем, в этом же обработчике надо интерпретировать содержимое этого же РОНа на семисегментный индикатор.
Вот только как это сделать, можно, конечно же использовать Flash для хранения констант и, использую команду LPM, загружать данные в индикатор... но, хочу другим способом.
Не умеешь - не берись, но не взявшись не научишься...
Хватит темнить. Индикаторов сколько будет, три? (чтобы отображать до "255")? Тогда запускаем процедуру BCD и получаем три десятичных разряда. А дальше в соответствии с разрядом (цифрой) подгружаем нужный код семисегментника. Или я что-то недопонял?Stalker46 писал(а): (не важно какого)
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Сообщения: 4435
- Зарегистрирован: Сб мар 07, 2009 20:44:36
нет, разряд всего лишь 1.
Цифр будет всего 10 - 0-9.
Как это все в массив записать?
Я вот недопонял назначение директивы .db
Цифр будет всего 10 - 0-9.
Как это все в массив записать?
Я вот недопонял назначение директивы .db
Не умеешь - не берись, но не взявшись не научишься...
Ну тогда надо где-то выделить 10 байт под 10 кодов для семисегментника для 10 цифр. В обработке в соответствии с содержимым регистра (1) подгружаем адрес ячейки памяти (флэш/еепром))(2), где находятся коды для семисегментника (3).
Или по-русски, ты говоришь компилятору что дальше идут данные (т.е. можно писать всякую лабуду, и компилятор не будет ругаться).
Код: Выделить всё
DB - Define constant byte(s) in program memory and EEPROM
The DB directive reserves memory resources in the program memory or the EEPROM memory. In order to be able to refer to the reserved locations, the DB directive should be preceded by a label. The DB directive takes a list of expressions, and must contain at least one expression. The DB directive must be placed in a Code Segment or an EEPROM Segment.
The expression list is a sequence of expressions, delimited by commas. Each expression must evaluate to a number between -128 and 255. If the expression evaluates to a negative number, the 8 bits twos complement of the number will be placed in the program memory or EEPROM memory location.
If the DB directive is given in a Code Segment and the expressionlist contains more than one expression, the expressions are packed so that two bytes are placed in each program memory word. If the expressionlist contains an odd number of expressions, the last expression will be placed in a program memory word of its own, even if the next line in the assemby code contains a DB directive. The unused half of the program word is set to zero. A warning is given, in order to notify the user that an extra zero byte is added to the .DB statement
Syntax:
LABEL: .DB expressionlist
Example:
.CSEG
consts: .DB 0, 255, 0b01010101, -128, 0xaa
.ESEG
const2: .DB 1,2,3[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]


