Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.96/89: Рейтинг темы: голосов - 89, средняя оценка - 4.96
 Аватар для Dostik
38 / 38 / 4
Регистрация: 31.05.2011
Сообщений: 580

Usbasp и Atmel AT89C51ED2

05.01.2016, 11:29. Показов 19896. Ответов 189
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток, подскажите пожалуйста на работу коллега принес usbasp заказанный в китае https://encrypted-tbn0.gstatic... NCR1lFBZkQ И принес списанный прибор, на борту которого чип Atmel AT89C51ED2, можно ли через данный программатор залить прошивку в данный чип ? если можно то подскажите как и чем ? потому как программатор не видит кристалл. Использовал программу avrdudeprog и SinaProg в списке данного кристалла не наблюдаю. Помогите пожалуйста разобраться с этим чудом. Всем спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.01.2016, 11:29
Ответы с готовыми решениями:

Чем программировать AT89C51ED2
У деда жены откопал на антресолях кучу AT89C51ED2. Хочу применить это чудо по назначению, но не знаю чем его программировать и какой...

Выполнение кода из внешней EEPROM (ASM, AT89C51ED2)
Задача: Необходимо в память (EEPROM) записать исполняющий код (не важно что он делает),который будет выполняться при включении...

Реверсинг "Эталон-01" на базе AT89C51ED2... или вопросы компетентности и степени жадности
Доброго времени суток. Моя проблема заключается в следующем. Работаю программистом ПЛК(только начинаю, только устроился). Дали задание: ...

189
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
09.01.2016, 00:06
Студворк — интернет-сервис помощи студентам
Характеристики сигналов который Вам мерить напишите.
1
 Аватар для Dostik
38 / 38 / 4
Регистрация: 31.05.2011
Сообщений: 580
09.01.2016, 00:12  [ТС]
Витальич, напряжение например вольт до 50, и пару сигналов с термометра сопротивления
0
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
09.01.2016, 00:14
Придется еще схему согласования делать.
1
 Аватар для Dostik
38 / 38 / 4
Регистрация: 31.05.2011
Сообщений: 580
09.01.2016, 16:48  [ТС]
ясно спасибо

Добавлено через 16 часов 25 минут
Всем доброго времени суток, продолжаем эксперименты и натыкаемся на ошибку большого размера массива
вот пример:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
unsigned char sin_tab [256] = {127,130,133,136,139,142,145,148,151,154,157,160,164,
 166,169,172,175,178,181,184,187,189,192,195,197,200,202,205,207,210,212,214,217,
 219,221,223,225,227,229,231,232,234,236,237,239,240,242,243,244,245,246,247,248,
 249, 250,251,251,252,252,253,253,253,253,253,254,253,253,253,253,252,252,251,251,
 250,249,249,248,247,246,245,243,242,241,239,238,236,235,233,231,230, 228,226,224,
 222,220,218,215,213,211,209,206,204,201,199,196,193,191,188,185,182,180,177,174,
 171,168,165,162,159,156,153,150,147,144,141,137,134,131,128,125,122,119,116,112,
 109,106,103,100,97,94,91,88,85,82,79,76, 73,71,68,65,62,60,57,54,52,49,47,44,42,
 40,38,35,33,31,29,27,25,23,22,20,18,17,15,14,12,11,10,8,7,6,5,4,4,3,2,2,1,1,0,0,
 0,0,0,0,0,0,0,0,1,1,2,2,3,4,5,6,7,8,9,10,11,13,14,16,17,19,21,22,24,26,28,30,32,
 34,36,39,41,43,46,48,51,53,56,58,61,64,66,69,72,75,78,81,84,87,89,93,96,99,102,
 105,108,111,114,117,120,123,127};
 
for (int i=0;i<256;i++) {
  P2_bit.P2_4 =sin_tab[i]; // ясно что так работать на данном мк не будет
 Delay(75);
}
Это я пример стянул с внешнего ресурса - генератор синусоиды
Если массив большой как выходят из этой ситуации ?
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
09.01.2016, 17:53
Цитата Сообщение от Dostik Посмотреть сообщение
продолжаем эксперименты и натыкаемся на ошибку большого размера массива
в чем выражается ошибка?
возможно количество данных больше чем 256? мне, на пальчиках, лень пересчитывать
используй такую запись
C
1
unsigned char sin_tab [] =
и следовательно
C
1
for (int i=0;i<sizeof(sin_tab );i++)
и оформлять данные лучше 16 рядов по 16 штук с табуляцией
второе предположение, массив просто не влазит в ОЗУ, тогда его нужно разместить во флеш
как? а тут у каждого компилятора\камня свои ключевые слова
2
 Аватар для Dostik
38 / 38 / 4
Регистрация: 31.05.2011
Сообщений: 580
10.01.2016, 17:28  [ТС]
Вообщем почитав вчера и сегодня про размещение во flash память, перепробовал уже разные пути, которые пишут из разных источников и даже те которые прилагается в самой документации если я правильно её перевел, приведу несколько примеров которые у меня не удалось запустить без ошибок :
Вариант 1:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
flash unsigned char flash *sin_tab[]  = {127,130,133,136,139,142,
 145,148,151,154,157,160,164,
 166,169,172,175,178,181,184,187,189,192,195,197,200,202,205,207,210,212,214,217,
 219,221,223,225,227,229,231,232,234,236,237,239,240,242,243,244,245,246,247,248,
 249, 250,251,251,252,252,253,253,253,253,253,254,253,253,253,253,252,252,251,251,
 250,249,249,248,247,246,245,243,242,241,239,238,236,235,233,231,230, 228,226,224,
 222,220,218,215,213,211,209,206,204,201,199,196,193,191,188,185,182,180,177,174,
 171,168,165,162,159,156,153,150,147,144,141,137,134,131,128,125,122,119,116,112,
 109,106,103,100,97,94,91,88,85,82,79,76, 73,71,68,65,62,60,57,54,52,49,47,44,42,
 40,38,35,33,31,29,27,25,23,22,20,18,17,15,14,12,11,10,8,7,6,5,4,4,3,2,2,1,1,0,0,
 0,0,0,0,0,0,0,0,1,1,2,2,3,4,5,6,7,8,9,10,11,13,14,16,17,19,21,22,24,26,28,30,32,
 34,36,39,41,43,46,48,51,53,56,58,61,64,66,69,72,75,78,81,84,87,89,93,96,99,102,
 105,108,111,114,117,120,123,127}
Вариант 2 аналогичен первому но только добавляет __ подчеркивания :
C
1
2
3
4
5
6
7
8
9
10
11
12
13
__flash unsigned char __flash *sin_tab[]  = {127,130,133,136,139,142,
 145,148,151,154,157,160,164,
 166,169,172,175,178,181,184,187,189,192,195,197,200,202,205,207,210,212,214,217,
 219,221,223,225,227,229,231,232,234,236,237,239,240,242,243,244,245,246,247,248,
 249, 250,251,251,252,252,253,253,253,253,253,254,253,253,253,253,252,252,251,251,
 250,249,249,248,247,246,245,243,242,241,239,238,236,235,233,231,230, 228,226,224,
 222,220,218,215,213,211,209,206,204,201,199,196,193,191,188,185,182,180,177,174,
 171,168,165,162,159,156,153,150,147,144,141,137,134,131,128,125,122,119,116,112,
 109,106,103,100,97,94,91,88,85,82,79,76, 73,71,68,65,62,60,57,54,52,49,47,44,42,
 40,38,35,33,31,29,27,25,23,22,20,18,17,15,14,12,11,10,8,7,6,5,4,4,3,2,2,1,1,0,0,
 0,0,0,0,0,0,0,0,1,1,2,2,3,4,5,6,7,8,9,10,11,13,14,16,17,19,21,22,24,26,28,30,32,
 34,36,39,41,43,46,48,51,53,56,58,61,64,66,69,72,75,78,81,84,87,89,93,96,99,102,
 105,108,111,114,117,120,123,127}
Вариант 3 с одним flash:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
flash unsigned char sin_tab[]  = {127,130,133,136,139,142,
 145,148,151,154,157,160,164,
 166,169,172,175,178,181,184,187,189,192,195,197,200,202,205,207,210,212,214,217,
 219,221,223,225,227,229,231,232,234,236,237,239,240,242,243,244,245,246,247,248,
 249, 250,251,251,252,252,253,253,253,253,253,254,253,253,253,253,252,252,251,251,
 250,249,249,248,247,246,245,243,242,241,239,238,236,235,233,231,230, 228,226,224,
 222,220,218,215,213,211,209,206,204,201,199,196,193,191,188,185,182,180,177,174,
 171,168,165,162,159,156,153,150,147,144,141,137,134,131,128,125,122,119,116,112,
 109,106,103,100,97,94,91,88,85,82,79,76, 73,71,68,65,62,60,57,54,52,49,47,44,42,
 40,38,35,33,31,29,27,25,23,22,20,18,17,15,14,12,11,10,8,7,6,5,4,4,3,2,2,1,1,0,0,
 0,0,0,0,0,0,0,0,1,1,2,2,3,4,5,6,7,8,9,10,11,13,14,16,17,19,21,22,24,26,28,30,32,
 34,36,39,41,43,46,48,51,53,56,58,61,64,66,69,72,75,78,81,84,87,89,93,96,99,102,
 105,108,111,114,117,120,123,127}
Вариант 4 в некоторых источниках пишут что можно объявлять просто const в среде iar что будет означать об объявлении использования fkash:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
const unsigned char sin_tab[]  = {127,130,133,136,139,142,
 145,148,151,154,157,160,164,
 166,169,172,175,178,181,184,187,189,192,195,197,200,202,205,207,210,212,214,217,
 219,221,223,225,227,229,231,232,234,236,237,239,240,242,243,244,245,246,247,248,
 249, 250,251,251,252,252,253,253,253,253,253,254,253,253,253,253,252,252,251,251,
 250,249,249,248,247,246,245,243,242,241,239,238,236,235,233,231,230, 228,226,224,
 222,220,218,215,213,211,209,206,204,201,199,196,193,191,188,185,182,180,177,174,
 171,168,165,162,159,156,153,150,147,144,141,137,134,131,128,125,122,119,116,112,
 109,106,103,100,97,94,91,88,85,82,79,76, 73,71,68,65,62,60,57,54,52,49,47,44,42,
 40,38,35,33,31,29,27,25,23,22,20,18,17,15,14,12,11,10,8,7,6,5,4,4,3,2,2,1,1,0,0,
 0,0,0,0,0,0,0,0,1,1,2,2,3,4,5,6,7,8,9,10,11,13,14,16,17,19,21,22,24,26,28,30,32,
 34,36,39,41,43,46,48,51,53,56,58,61,64,66,69,72,75,78,81,84,87,89,93,96,99,102,
 105,108,111,114,117,120,123,127}
Вариант 5 точно не помню но предложили для выделения места во flash памяти объявлять след образом:
C
1
2
flash unsigned char sin_tab[]  = {"127","130","133","136","139","142"};
}
И чуть не забыл заголовок с библиотекой я подключил pgmspace.h
Будут у кого какие мысли ? Спасибо за ответ.

Добавлено через 1 минуту
Лог ошибок :
Warning[Pe167]: argument of type "char *" is incompatible with parameter of type "unsigned char *" C:\Users\User\Desktop\tetst\Prot\prob2\m ain.c 22
Error[Pe020]: identifier "flash" is undefined C:\Users\User\Desktop\tetst\Prot\prob2\m ain.c 30
Error[Pe065]: expected a ";" C:\Users\User\Desktop\tetst\Prot\prob2\m ain.c 30
Warning[Pe012]: parsing restarts here after previous syntax error C:\Users\User\Desktop\tetst\Prot\prob2\m ain.c 42
Error while running C/C++ Compiler

Сообщающий нам о том что такого идентификатора flash не существует или __flash ...

Добавлено через 3 минуты
Посмотрев саму библиотеку pgmspace.h
там только описания для работы с тем что мы поместили во flash : sprintf_P, strcpy_P, sscan_P и т. д.
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
10.01.2016, 17:30
Цитата Сообщение от Dostik Посмотреть сообщение
flash unsigned char flash *sin_tab[]
массив указателей?
Цитата Сообщение от Dostik Посмотреть сообщение
Сообщающий нам о том что такого идентификатора flash не существует или __flash ...
значит данный компилятор не знает такого слова
я когда писал для 51 то использовал ключевое слово code
C
1
2
code char[]A={10,20};//в пзу
data char[]B={10,20};//в озу
правда это был Keil
1
 Аватар для Dostik
38 / 38 / 4
Регистрация: 31.05.2011
Сообщений: 580
10.01.2016, 17:31  [ТС]
Вариант 6 только что нашел :
C
1
static const __flash char sin_tab[] = {...};
так же не работает
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
10.01.2016, 17:31
Цитата Сообщение от Dostik Посмотреть сообщение
Посмотрев саму библиотеку pgmspace.h
там только описания для работы с тем что мы поместили во flash : sprintf_P, strcpy_P, sscan_P и т. д.
ну и посмотри как там флешь описывается
1
 Аватар для Dostik
38 / 38 / 4
Регистрация: 31.05.2011
Сообщений: 580
10.01.2016, 17:32  [ТС]
Цитата Сообщение от ValeryS Посмотреть сообщение
массив указателей?
Да я тоже удивился, но данный пример часто встречается на посторонних ресурсах.
0
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
10.01.2016, 17:35
а так
C
1
const unsigned char __flash sin_tab[] = "VITALICH";
Добавлено через 2 минуты
если получится уберите к нему обращения из программы
1
 Аватар для Dostik
38 / 38 / 4
Регистрация: 31.05.2011
Сообщений: 580
10.01.2016, 17:42  [ТС]
Warning[Pe167]: argument of type "char *" is incompatible with parameter of type "unsigned char *" C:\Users\User\Desktop\tetst\Prot\prob2\m ain.c 22
Warning[Pe257]: const variable "__flash" requires an initializer C:\Users\User\Desktop\tetst\Prot\prob2\m ain.c 30
Error[Pe065]: expected a ";" C:\Users\User\Desktop\tetst\Prot\prob2\m ain.c 30
Warning[Pe009]: nested comment is not allowed C:\Users\User\Desktop\tetst\Prot\prob2\m ain.c 42
Warning[Pe177]: variable "__flash" was declared but never referenced C:\Users\User\Desktop\tetst\Prot\prob2\m ain.c 30
Error while running C/C++ Compiler

Не получилось

Добавлено через 2 минуты
Цитата Сообщение от ValeryS Посмотреть сообщение
ну и посмотри как там флешь описывается
вы думаете я не посмотрел и не попробовал ?
C
1
2
3
#define PGM_P      const char __code *
 
MEMORY_ATTRIBUTE int    printf_P(PGM_P,...);
0
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
10.01.2016, 17:43
Цитата Сообщение от Dostik Посмотреть сообщение
Error[Pe065]: expected a ";" C:\Users\User\Desktop\tetst\Prot\prob2\m ain.c 30
это к чему? вроде как не массив.
строчку разместили до main?
1
 Аватар для Dostik
38 / 38 / 4
Регистрация: 31.05.2011
Сообщений: 580
10.01.2016, 17:48  [ТС]
у меня до main только 1 функция. Не знаю почему он пишет данную ошибку, если закоментировать строки с ошибкой, то все нормально, и предупреждений нет

Добавлено через 2 минуты
и вот это до main тоже :
C
1
2
3
4
void Lcd_init();
void Lcd_Data ( unsigned char ASCII);
void Lcd_Cmd (unsigned char cmm);
void Lcd_Disp (unsigned char Loc, unsigned char *String);
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
10.01.2016, 18:23
Цитата Сообщение от Dostik Посмотреть сообщение
вы думаете я не посмотрел и не попробовал
я не заметил
вот твое ключевое слово
Цитата Сообщение от Dostik Посмотреть сообщение
__code
сколько подчеркиваний не знаю, похоже два
вот и попробуй
C
1
2
3
4
const char __code aa[]={10,20};
char __code aa[]={10,20};
__code const char aa[]={10,20};
__code char aa[]={10,20};
что то должно сработать
1
 Аватар для Dostik
38 / 38 / 4
Регистрация: 31.05.2011
Сообщений: 580
10.01.2016, 18:27  [ТС]
Цитата Сообщение от ValeryS Посмотреть сообщение
что то должно сработать
Я так пробовал уже, честно не сработало
0
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
10.01.2016, 18:31
Для IAR 8051 вот такая нотация была:
C
1
__root const unsigned char sin_tab[3]@0x0000={1,2,3};
__root - не оптимизировать.
где 0x0000 - адрес размещения
И это даже компилируется, но возникает ошибка линковщика.
Проблема в том, что надо еще и линкёру объяснить куда это запихнуть, я не помню настройки, а найти пока что то не получается.
1
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
10.01.2016, 18:31
посмотри на 42 странице спецификатор __code
Вложения
Тип файла: pdf EW8051_CompilerReference.pdf (2.88 Мб, 10 просмотров)
2
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
10.01.2016, 18:36
You can use the __code memory attribute to place constants and strings in the code
memory space
.
(выделено мной)

Добавлено через 2 минуты
Цитата Сообщение от Витальич Посмотреть сообщение
__root - не оптимизировать.
не совсем
__root Ensures that a function or variable is included in the object
code even if unused
оттуда же
2
 Аватар для Dostik
38 / 38 / 4
Регистрация: 31.05.2011
Сообщений: 580
10.01.2016, 18:38  [ТС]
Цитата Сообщение от Витальич Посмотреть сообщение
И это даже компилируется, но возникает ошибка линковщика.
Проблема в том, что надо еще и линкёру объяснить куда это запихнуть, я не помню настройки, а найти пока что то не получается.
как будет время и возможность поделитесь если я не найду ? спасибо

Добавлено через 59 секунд
Цитата Сообщение от ValeryS Посмотреть сообщение
(выделено мной)
не понятно тогда почему мой iar посылает меня ...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.01.2016, 18:38

USBAsp
Вот собственно... Купил себе нетбук и появилась необходимость в USB программаторе. Делал по печатке DY HOTTa. Сторону с пайкой стыдно...

USBAsp
Всем привет. Собрал программатор USBAsp. Подключил к USB, по идее должен же загореться светодиод что питание поступило а он у меня...

tiny85 & USBasp
Попробовал сейчас залить програмку в тини85 при помощи усбаспа, программа заливается корректно, а фьюзы не читаются. Пользуюсь оболочкой...

Проблемы с USBASP
Здравствуйте. Начал изучение микроконтроллеров. Приобрел usb программатор USBASP. Пытаюсь прошить тини2313. Скачал проги eXtreme Burner...

Обновление USBasp
Добрый день. Некоторое время занимался arduino, решил вылазить из пеленок и самостоятельно травить платы, прошивать контроллеры... ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
120
Ответ Создать тему
Новые блоги и статьи
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru