вопрос к знатокам Си

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 35
Зарегистрирован: Вт апр 04, 2006 15:39:23
Откуда: КАЗАНЬ

Сообщение Sanchez »

в качестве домашки в универе поступила задачка...
в кратце не могу запустить функцию корня.
sqrt(a) , выдаёт ашипку. :cry:
среда borlandC++.
подключал модули stdio.h и math.h.
и в чем тут может быть собака зарыта, не подскажете? :)
Реклама
Max
Админ
Аватара пользователя
Сообщения: 10814
Зарегистрирован: Вт авг 23, 2005 15:23:25
Откуда: Москва

Сообщение Max »

Так а ошибка то какая? :)
Контактная информация:
Реклама
Вечно гонимый
Аватара пользователя
Сообщения: 331
Зарегистрирован: Пн сен 04, 2006 20:25:28
Откуда: самоучитель по микроконтроллерам

Сообщение avr123.nm.ru »

sqrt(a);

посмотрите help - там примеры есть.
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 429
Зарегистрирован: Вс июн 29, 2008 13:53:03

Сообщение Илья79 »

как сделать на С чтобы данные прямиком сохранить в регистр, а потом из него извлечь

это нужно для того что бы переждать RESET
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Э...
Аватара пользователя
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва

Сообщение tych »

Может лучше в eeprom записать ? или во внешнюю память.

А в регистры запись это есть в FAQ на моей домашней страничке.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Контактная информация:
Реклама
Опытный кот
Аватара пользователя
Сообщения: 800
Зарегистрирован: Ср апр 25, 2007 09:50:43
Откуда: Киев

Сообщение Аксель »

Тема была начата в разделе форума "интеграция с пк". Так в общем разъяснилось :)) ...
Последний раз редактировалось Аксель Пн июл 28, 2008 03:03:04, всего редактировалось 2 раза.
Скелет колобка состоит из черепа.
Контактная информация:
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18785
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

расскажите, что такое вы придумали, что вам надо записать в регистр и переждать RESET... если я не забыл все - ОС не даст вашей программе что-то сохранить для себя в регистрах так, чтобы после сброса оно уцелело...

для доступа к регистрам процессора никаких средств не надо - сделайте ассемблерную вставку в вашей программе и пишите в его регистры, что хотите... но проживет это не дольше, чем завершится ваша программа...

для доступа к регистрам видеокарты, например, или портам ввода-вывода компьютера, или напрямую к ОЗУ - в Windows придется использовать специальные библиотеки. Я использую WinIO, могу ее порекомендовать. Однако, наличие доступа к аппаратным портам и памяти ПК не гарантирует, что после RESET там что-то вы найдете полезное для себя... Зато повышаются шансы грохнуть систему :)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 413
Зарегистрирован: Пт мар 10, 2006 12:23:05
Откуда: Moscow

Сообщение Mozart »

как сделать на С чтобы данные прямиком сохранить в регистр, а потом из него извлечь
это нужно для того что бы переждать RESET
запишите всё это в файл сохраните... потом ресет... потом открыть файл прочитать... потом опять затереть и записать новое... потом опять ресет... и т.д.

ах да код...

Код: Выделить всё

//....
FILE *streamFile;
streamFile = fopen("save.cfg","r");
if (streamFile == NULL)
//error; exit();
fclose(streamFile);
streamFile = fopen("save.cfg","w");
fprintf(streamFile, "data");
fclose(streamFile);
//...
если после прочитанной книги что-то в голове осталось, радуйся. Голова работает на тебя!!!
Контактная информация:
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1148
Зарегистрирован: Вт июл 08, 2008 12:24:17

Сообщение Yellow Tiger »

ARV писал(а):если я не забыл все - ОС не даст вашей программе что-то сохранить для себя в регистрах так, чтобы после сброса оно уцелело...
Да тут и ОС неважна - сразу после ресета отрабатывает код BIOS и способов упросить его обращаться бережнее с содержимым регистров ("мы же не сохранились!!!") не предусмотрено. 8)
Мучитель микросхем
Аватара пользователя
Сообщения: 413
Зарегистрирован: Пт мар 10, 2006 12:23:05
Откуда: Moscow

Сообщение Mozart »

вот от делать нечего...

Код: Выделить всё

	FILE *stream;
   char *xz = "c:\\Denis.txt";
	if (!fopen(xz, "r"))
   {
   	ShowMessage("file not exists");
		stream = fopen(xz,"w");
      fprintf(stream, "Denis");

   }
   else
   	stream = fopen(xz,"r");


	char *data;
   int N;
   N = filesize(stream);
   data = new char (N);
   fread(data, N, 1, stream);
   fclose(stream);
//......
   delete [] data;
это всё запустить в во второй поток... и будет вам маленькое счастье... наверно...
если после прочитанной книги что-то в голове осталось, радуйся. Голова работает на тебя!!!
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 429
Зарегистрирован: Вс июн 29, 2008 13:53:03

Сообщение Илья79 »

Огромное спасибо! Не ожидал столько ответов.
Буду разбираться.
видно не в ту тему написал, не бейте сильно :o
Это для МК АТ89с52
Этот режим работы не я придумал, когда увидел :shock:
вот и мучаюсь :cry:
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 413
Зарегистрирован: Пт мар 10, 2006 12:23:05
Откуда: Moscow

Сообщение Mozart »

мля... ещё проще... есть прерывание по сбросу... точнее будет так... после сброса всё начинается выполняться с нулевого адреса, вот там надо написать ссылку на функцию которая будет вам записывать значения нужных регистров...
если после прочитанной книги что-то в голове осталось, радуйся. Голова работает на тебя!!!
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 429
Зарегистрирован: Вс июн 29, 2008 13:53:03

Сообщение Илья79 »

Я так и пробовал сделать вставляя команды на asm, но компилятор air не признает asm.

вот ищу команду на С что бы вставить/извлечь в регистр.

разбираюсь с компилятором WinAVR, там это можно вставить команды на asm :)
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18785
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Илья79, судя по всему, вам надо или бросить вообще эту затею, или все же начать с изучения МК, с которым вы работаете. AT89C52 и компилятор WinAVR - это абсолютно несовместимые вещи, и если вы взялись за них - это говорит о вашей компетентности (извините за резкость, но это так). Посему - см. выше: или устраняйте некомпетенстность, или откажитесь от затеи.

P.S. При сбросе любого МК сохраняется содержимое его ОЗУ (в отличие от регистров, многие из которых могут инициализироваться) - сохраняйте нужные вам данные в переменных, жестко привязанных к определенным адресам ОЗУ - и будет вам счастье. Самое меньшее, что для этого надо сделать - просто использовать указатель.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 429
Зарегистрирован: Вс июн 29, 2008 13:53:03

Сообщение Илья79 »

спасибо ARV, а я тут пытался откомпилировать на WinAVR для АТ89С52, только безрезультатно, ни кто про это мне не говорил :(

у меня на схеме есть микросхема памяти АТ24с16, буду пробовать туда писать
Последний раз редактировалось Илья79 Вс июл 27, 2008 20:02:57, всего редактировалось 1 раз.
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18785
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

вам надо пережить СБРОС или ОТКЛЮЧЕНИЕ ПИТАНИЯ? про то, как пережить сброс я писал - EEPROM вовсе необязательно для этого, а вот снятие питания - тут да, только EEPROM
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 413
Зарегистрирован: Пт мар 10, 2006 12:23:05
Откуда: Moscow

Сообщение Mozart »

у at89 насколько мне память не изменяет архитектура 51ого??? тогда в винавр у вас ничего не получится...

а вообще нафига вам нужно слхранять значения регистров?
если после прочитанной книги что-то в голове осталось, радуйся. Голова работает на тебя!!!
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 429
Зарегистрирован: Вс июн 29, 2008 13:53:03

Сообщение Илья79 »

получается так:
запускается программа в МК
работает 1 сек
приходит сигнал сброса
и все повторяется за ново

хочу сохранить данные для дальнейшей работы программы после сброса.
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 413
Зарегистрирован: Пт мар 10, 2006 12:23:05
Откуда: Moscow

Сообщение Mozart »

почему так мало работает?? может у вас вообще питание не стабильно??
если после прочитанной книги что-то в голове осталось, радуйся. Голова работает на тебя!!!
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18785
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Илья79 писал(а):получается так:
запускается программа в МК
работает 1 сек
приходит сигнал сброса
и все повторяется за ново

хочу сохранить данные для дальнейшей работы программы после сброса.
тогда размещайте важные данные в свободном ОЗУ - оно при сбросе не портится
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»