80C51GB
Re: 80C51GB
Мя с Кейлом конечно не общался, но подходы у всех программ одинаковые, посему могу предположить..
Походу он ругается, что регистры уже определены, а судя по цыфре 15 в скобках, ошибка произошла на 15-й строчке программы..
Выложи сюда листинг программы, это файл с именем, как у твоего ассемблерного файла и расширением .lst..
Походу он ругается, что регистры уже определены, а судя по цыфре 15 в скобках, ошибка произошла на 15-й строчке программы..
Выложи сюда листинг программы, это файл с именем, как у твоего ассемблерного файла и расширением .lst..
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
- Реклама
- seedbutcher
- Первый раз сказал Мяу!
- Сообщения: 32
- Зарегистрирован: Пн окт 10, 2011 19:47:06
- Откуда: Екатеринбург
Re: 80C51GB
я думаю, он ругается, что в этом файле еще раз определены регистры, которые он и так знает
- Вложения
-
- adc.rar
- (5.58 КБ) 159 скачиваний
Re: 80C51GB
Напишите еще каким IDE пользуетесь. К вечеру выложу проверенную программу под Silabs IDE и Keil
- seedbutcher
- Первый раз сказал Мяу!
- Сообщения: 32
- Зарегистрирован: Пн окт 10, 2011 19:47:06
- Откуда: Екатеринбург
Re: 80C51GB
кроме Keil v4.22 ничего. Ну еще Silabs IDE установлен, но там ведь нет симуляции как я понялSer60 писал(а):Напишите еще каким IDE пользуетесь. К вечеру выложу проверенную программу под Silabs IDE и Keil
Re: 80C51GB
Как мя понял, он ругается только на определения регистров которые есть в "классике-51"..
В Металинке тоже были проблемы с "прикручиванием" СиЛабсовских определений регистров и там мя просто сначала командой выключил стандартные определения, а потом включил конкретный файл определений:
Может у Кейла тоже подобное есть.. Попробуй написать:
Или, как вариант, там в папке примеров есть пример на Асме для F020-го.. Можно попробовать взять его, как "рыбу" и вписать в него твою собственно программу, а всю шапку и определения, оставить, как есть..
В Металинке тоже были проблемы с "прикручиванием" СиЛабсовских определений регистров и там мя просто сначала командой выключил стандартные определения, а потом включил конкретный файл определений:
Код: Выделить всё
$NOMOD
$INCLUDE(F300.inc)Код: Выделить всё
$NOMOD
$INCLUDE (C8051F020.inc)[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
- Реклама
Re: 80C51GB
ммм... насчет Keil а... не пользовался, а вот в том же c51asm.exe от атмела (синтаксис содран с Keil по инструкции пользователя ) предусматривается определение регистров РСФ по собственному усмотрению - добавляй чего тебе надобно (в разумных пределах) и ругаться не будет... неплохо с редактором dpad уживается... до силапсей пока дело не доходило - смд да и программатор... не "народные", а вот с обычными mcs51 уже давно на атмеловском асме работаю - не глючный и бесплатный 
- seedbutcher
- Первый раз сказал Мяу!
- Сообщения: 32
- Зарегистрирован: Пн окт 10, 2011 19:47:06
- Откуда: Екатеринбург
Re: 80C51GB
Спасибо за $NOMOD)
Посмотрел в Silabs IDE, там в начале файла было $NOMOD51.
Ошибок пока не выдает, сейчас буду пробовать.
Посмотрел в Silabs IDE, там в начале файла было $NOMOD51.
Ошибок пока не выдает, сейчас буду пробовать.
Re: 80C51GB
кстати, *.inc там тоже прилагаются, как шаблоны конкретных ИС, но для РСф есть еще собственное определение - можно подходящий шаблон подключить и в основном файле задать определение нужных "добавок" (или их как подключаемые файлы изготовить - но только при условии, что все существенные определения будут сделаны до остального текста программы)
Re: 80C51GB
Давай, отпишись потом, что получилось..seedbutcher писал(а):Ошибок пока не выдает, сейчас буду пробовать.
А ИДЕ-шник от Цугнала с Металинком - тоже "не глючный и бесплатный"..BOB51 писал(а):на атмеловском асме работаю - не глючный и бесплатный
BOB51, приветствую !!! Куда запропал?
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Re: 80C51GB
бррр... достали передовые технологии...
народ кинулся на STM/ARM - завидющие кристаллы... платка программатора в продаже недорого появилась... заманчиво вроде... помыкался-потыкался поглядел на финансовую часть (расходы на освоение/доходы по результатам применения)... плюнул на енто дело и решил додавить оставшиеся в "запаснике" PIC18 !!!
кстати, при повторном анализе материала узрел интересную изюминку - у 18-х, в отличии от младших, регистр wreg является физическим регистром в области РСФ, что позволяет использовать его в командах в позиции f ... весьма полезная новинка
кстати, при повторном анализе материала узрел интересную изюминку - у 18-х, в отличии от младших, регистр wreg является физическим регистром в области РСФ, что позволяет использовать его в командах в позиции f ... весьма полезная новинка
Re: 80C51GB
Новое, это "недочитанное" старое..BOB51 писал(а):весьма полезная новинка
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
- seedbutcher
- Первый раз сказал Мяу!
- Сообщения: 32
- Зарегистрирован: Пн окт 10, 2011 19:47:06
- Откуда: Екатеринбург
Re: 80C51GB
Продираясь сквозь Keil уперся в такое дело:
хочу сконфигурировать внутренний генератор, а получаю установку флага сброса контрллера MCDRSF.
Сброс происходит после MOV OSCICN, #10000111b.
Вроде разобрался. Надо было писать MOV OSCICN, #097Н, а не #087H, чтобы сразу и запустить внутренний генератор.
хочу сконфигурировать внутренний генератор, а получаю установку флага сброса контрллера MCDRSF.
Сброс происходит после MOV OSCICN, #10000111b.
Код: Выделить всё
$NOMOD51
$INCLUDE (C8051F020.inc)
jmp Main
ORG 30H
USING 0
main:
mov WDTCN, #0DEH ; disable watchdog timer
mov WDTCN, #0ADH
MOV OSCICN, #10000111b
MOV REF0CN, #00000011b
IFRDY_wait:
MOV A, OSCICN
JNB ACC.4, IFRDY_wait
MOV ADC0CF, #10000000b
MOV AMX0CF, #00H
MOV AMX0SL, #00H
MOV ADC0CN, #10001101b
sjmp $
END
Вроде разобрался. Надо было писать MOV OSCICN, #097Н, а не #087H, чтобы сразу и запустить внутренний генератор.
Re: 80C51GB
Директива NOMOD51 не нужна, если использовать стандартный INC файл (Ваш случай).
Программу следует поместить начиная с адреса 0xB3, т.е. после таближы прерываний.
Внутренний генератор можно запускать инструкцией ORL OSCICN, #0x83
$include (C8051F020.inc)
CSEG AT 0
ljmp Main
ORG 0xB3
USING 0
main:
Программу следует поместить начиная с адреса 0xB3, т.е. после таближы прерываний.
Внутренний генератор можно запускать инструкцией ORL OSCICN, #0x83
$include (C8051F020.inc)
CSEG AT 0
ljmp Main
ORG 0xB3
USING 0
main:
- seedbutcher
- Первый раз сказал Мяу!
- Сообщения: 32
- Зарегистрирован: Пн окт 10, 2011 19:47:06
- Откуда: Екатеринбург
Re: 80C51GB
Ser60 писал(а):Директива NOMOD51 не нужна, если использовать стандартный INC файл (Ваш случай).
в том то и дело, что если эту директиву не писать, то Keil выдает ошибку о том, что 2 раза объявляются порты и некоторые регистры. файл с листингом, если не писать NOMOD51, я выкладывал немного выше
Re: 80C51GB
Просмотрел Ваш листинг и обнаружил, что в отличии от Вас у меня директива NOMOD51 интегрирована в командной строке компиляции проекта, поэтому в коде она мне и не нужна.
Код: Выделить всё
Invoking project defined assembler.
C:\SiLabs\MCU\Keil\C51\BIN\A51.EXE "test.asm" XR GEN DB EP NOMOD51 INCDIR(C:\SiLabs\MCU\Inc) Re: 80C51GB
МитяРа, я хотел-бы попробовать Ваш IDE. Не подскажете где его взять?МитяРа писал(а):А ИДЕ-шник от Цугнала с Металинком - тоже "не глючный и бесплатный"..
Re: 80C51GB
У мя вот ещё вопрос, в Металинке используется запись, например:
а у Кейла, видел типа Си-шных записей:
хотя в примерах seedbutcher приводит для Кейла тоже Металинковскую запись..
Или у Кейла можно указать, какой тип записи используется?
Версия 1.3, которой мя пользуюсь была последней, в которой использовался Металинк ассемблер, а потом они на Кейл перешли..
Отписал в ЛС..
Код: Выделить всё
mov WDTCN, #0DEHКод: Выделить всё
mov WDTCN, 0x0DEИли у Кейла можно указать, какой тип записи используется?
Сцилка на Цугналовский сайт ведёт на СиЛабс, но сами ИДЕ-шники у мя есть, версий 1.3, 1.5, 1.6..Ser60 писал(а):Не подскажете где его взять?
Версия 1.3, которой мя пользуюсь была последней, в которой использовался Металинк ассемблер, а потом они на Кейл перешли..
Отписал в ЛС..
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
- seedbutcher
- Первый раз сказал Мяу!
- Сообщения: 32
- Зарегистрирован: Пн окт 10, 2011 19:47:06
- Откуда: Екатеринбург
Re: 80C51GB
хммм... ничего специально не указывал. А такой записью пользовался во Franklin. вот и привыкИли у Кейла можно указать, какой тип записи используется?
- IM1
- Грызет канифоль
- Сообщения: 268
- Зарегистрирован: Вт фев 16, 2010 12:10:38
- Откуда: Воронеж, Россия
Re: 80C51GB
Кейл не привередничает и одинаково хорошо воспринимает оба варианта представления 16-ричных чисел. Так что, пишите как Вам удобнее.МитяРа писал(а):У мя вот ещё вопрос, в Металинке используется запись, например:а у Кейла, видел типа Си-шных записей:Код: Выделить всё
mov WDTCN, #0DEHхотя в примерах seedbutcher приводит для Кейла тоже Металинковскую запись..Код: Выделить всё
mov WDTCN, 0x0DE
Или у Кейла можно указать, какой тип записи используется?
Re: 80C51GB
Да мя не на Кейле пишу..IM1 писал(а):пишите как Вам удобнее.
Самих Ассемблеров для МК51 перепробовал туеву хучу..
Самый первый был XASM51, ещё на Роботроне-1715 под СР/М.. Но, как потом выяснилось, он неправильно кодировал команду десятичной коррекции..
Пока это понял, провозился неделю..
потом ещё куча всяких была перепробована, да всё чем-то, да не устраивало.. В основном, все не понимали русских комментариев и в листинге "гадили" неимоверно..
Потом, нашёл Металинк, ешё первую версию, а потом, вышел на Цугналовский ИДЕ-шник, там Металинк - по умолчанию использовался..
А запись непосредственных через #, это Интелловская мнемоника, она во всех ихних ассемблерах присутствует..
Первый ассемблер был для i8080, так, что переход на 48-й и 51-й прошёл легко...
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]


