roboforum.ru

Технический форум по робототехнике.

МикроКонтроллер AVR начинающим - общие вопросы

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Re: МикроКонтроллер AVR начинающим - общие вопросы

Сообщение ADonis » 23 апр 2010, 18:53

Мне бы не было так обидно, если бы я нашел косяк, на котором засыпался, пусть он будет самым дурацким... Я ж ничего не поменял! Абсолютно!
В гугле есть все! Даже то, чего еще нет!

Не спорь с холостяком о макаронах!
Аватара пользователя
ADonis
 
Сообщения: 106
Зарегистрирован: 30 дек 2009, 08:16
Откуда: Омск
Skype: hedgehoguse

Re: МикроКонтроллер AVR начинающим - общие вопросы

Сообщение milkpower » 26 апр 2010, 19:34

есть вопрос по winavr.
определяем констатну
const uint8_t ls[]="Test line";
в книге Шпак Ю.А."программирование на С....", сказано что константы размещаются в памяти программ, однако AVRstudio в дебагере показывает что оно определилось в sram.
так как же мне разместить константы в памяти программ?

Добавлено спустя 10 минут 39 секунд:
все, нашел, разобрался.
Аватара пользователя
milkpower
 
Сообщения: 217
Зарегистрирован: 25 мар 2009, 13:57
Откуда: Ростов-на-Дону
ФИО: Виктор

Re: МикроКонтроллер AVR начинающим - общие вопросы

Сообщение avr123.nm.ru » 26 апр 2010, 19:52

... но не скажу как !
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: МикроКонтроллер AVR начинающим - общие вопросы

Сообщение milkpower » 26 апр 2010, 20:06

я плохо искал поиском по форуму тут все объяснили уже
Аватара пользователя
milkpower
 
Сообщения: 217
Зарегистрирован: 25 мар 2009, 13:57
Откуда: Ростов-на-Дону
ФИО: Виктор

18b20 значение температуры показывает только в целых градуса

Сообщение Винни » 27 апр 2010, 11:36

простите, если вопрос дурацкий, но сам за неделю ковыряний ответа так и не нашел (
датчик 18b20 выдает показания температуры в двухзначном виде, хотя вроде должен выдавать температуру *10, то есть три знака. ну, или больше, если температура выше ста...
вот, значимые части когда, на мой взгляд:
Код: Выделить всёРазвернуть
#include <mega16.h>

// Alphanumeric LCD Module functions
#asm
   .equ __lcd_port=0x15 ;PORTC
   .equ __w1_port=0x18 ;PORTB
   .equ __w1_bit=0
#endasm
#include <lcd.h>
#include <delay.h>
#include <stdio.h>
#include <1wire.h>
#include <ds18b20.h>
#include <math.h>
#include <stdlib.h>
#define MAX_DS18b20 8

  unsigned char ds18b20_devices;
  unsigned char ds18b20_rom_codes[MAX_DS18b20][9];

Код: Выделить всёРазвернуть
void main(void)
{
   //unsigned char temper;
   int temper;
   lcd_init(16); 
   w1_init() ;
   ds18b20_init(&ds18b20_rom_codes[0][0],25,35,DS18B20_10BIT_RES);
   {
   #asm("cli")
   ds18b20_devices=w1_search(0xf0,&ds18b20_rom_codes[0][0]);
   #asm("sei")
   };

Код: Выделить всёРазвернуть
lcd_init(16);

// Global enable interrupts
#asm("sei")
lcd_clear();
while (1)
      {
      // Place your code here
     
     
      #asm("cli")
      temper=ds18b20_temperature (&ds18b20_rom_codes [0] [0]); 
       PORTA.6=0;
      #asm("sei") 
     
      lcd_gotoxy(5,0);
     
      sprintf(string_lcd, "%01d\n", ds18b20_temperature (&ds18b20_rom_codes [0] [0]));
      lcd_puts(string_lcd);
      lcd_gotoxy(3,1);
      sprintf(string_lcd2,"%-03d" , temper);
      lcd_puts(string_lcd2);
      delay_ms (800);
      PORTA.6=1;

спасибо! и не пинайте сильно, я в этом совсем новичок )
з.ы. инет изучал, поиск по форуму юзал...
Последний раз редактировалось Vooon 28 апр 2010, 15:22, всего редактировалось 2 раз(а).
Причина: [code=cpp] !!!
Винни
 
Сообщения: 14
Зарегистрирован: 27 апр 2010, 10:53

Re: МикроКонтроллер AVR начинающим - общие вопросы

Сообщение milkpower » 27 апр 2010, 21:14

что-то опять не получается.
объявляю функцию, вызываю из программы, функция не работает.
Код: Выделить всёРазвернуть
void In_pr(void) 
{
   LCDGotoXY(0,3);
   uint8_t ii;
   for (ii=0; ii<18; ii++)
      {
      LCDsendChar(0x2a);
      _delay_ms(500);
      }
   LCDsendChar(0x4f);
   LCDsendChar(0x4b);
}

int main(void)
{
   LCDinit();
   LCDclr();
   CopyStringtoLCD(menu01,0,0);
   CopyStringtoLCD(menu02,0,1);
   CopyStringtoLCD(menu03,0,2);
   In_pr; // вызываемая функция
   _delay_ms(3000);
   CopyStringtoLCD(menu04,0,0);

   while(1)//loop
   {
   }
   return 0;
}


а если тело функции вставим в программу, то все без проблем.

Добавлено спустя 3 часа 46 минут 30 секунд:
вызывать функцию надо со скобками. Func().

сам спросил сам ответил, вот и поговорил :)
Аватара пользователя
milkpower
 
Сообщения: 217
Зарегистрирован: 25 мар 2009, 13:57
Откуда: Ростов-на-Дону
ФИО: Виктор

Re: МикроКонтроллер AVR начинающим - общие вопросы

Сообщение blindman » 28 апр 2010, 05:17

Надо включать предупреждения компилятора, многие ошибки (реальные и потенциальные) видно будет на этапе компиляции
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: МикроКонтроллер AVR начинающим - общие вопросы

Сообщение milkpower » 28 апр 2010, 23:25

спасибо, воспользуюсь советом.
Аватара пользователя
milkpower
 
Сообщения: 217
Зарегистрирован: 25 мар 2009, 13:57
Откуда: Ростов-на-Дону
ФИО: Виктор

Re: 18b20 значение температуры показывает только в целых гра

Сообщение boez » 29 апр 2010, 11:19

Винни писал(а):простите, если вопрос дурацкий, но сам за неделю ковыряний ответа так и не нашел (
датчик 18b20 выдает показания температуры в двухзначном виде, хотя вроде должен выдавать температуру *10, то есть три знака. ну, или больше, если температура выше ста...
вот, значимые части когда, на мой взгляд:
Код: Выделить всёРазвернуть
   int temper;
...
   temper=ds18b20_temperature (&ds18b20_rom_codes [0] [0]); 

спасибо! и не пинайте сильно, я в этом совсем новичок )
з.ы. инет изучал, поиск по форуму юзал...


Читаем хелп по функции ds18b20_temperature и узнаем оттуда, в каком формате она возвращает температуру :)
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++

Re: МикроКонтроллер AVR начинающим - общие вопросы

Сообщение Винни » 29 апр 2010, 20:14

ответ был здесь
viewtopic.php?f=2&t=4254
Винни
 
Сообщения: 14
Зарегистрирован: 27 апр 2010, 10:53

Re: МикроКонтроллер AVR начинающим - общие вопросы

Сообщение rat12 » 06 май 2010, 23:50

Вопрос знатокам.

Я использую для создания проекта компилятор CVAVR. Микроконтроллер mega128. Нулевой USART подключен к последовательному порту ПК. Существуют ли решения (загрузчики), позволяющие использовать код, созданный CVAVR и обновлять данный код, без использования программатора, через USART?

Буду очень признателен, если покажете примеры, как это можно сделать. Заранее большое спасибо!
rat12
 
Сообщения: 14
Зарегистрирован: 24 фев 2010, 17:33
Откуда: Симферополь

Re: МикроКонтроллер AVR начинающим - общие вопросы

Сообщение galex1981 » 07 май 2010, 00:00

Да, можно через Уарт прошивать МК. Для этого следует прошить МК прошивкой Bootloader-а, например как в: viewtopic.php?f=58&t=7269. А затем программой avrdude прошивать через последовательный порт. Подробней поищите на Форуме по слову Bootloader
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: МикроКонтроллер AVR начинающим - общие вопросы

Сообщение Webspider » 10 май 2010, 18:29

Помогите Дураку!)
Купил AT45DB161D в SOIC-8, 28выводного не было((
Скажите, пин RDY/BISY(которого у меня нет) вообще как-нибудь используется в исходниках в avr123/Z7 ??Повлияет ли его отсутствие,если буду использвать исходники задачи Z7.?? если да, то подскажите пжлста, что и как конкретно нужно изменить там, чтобы всё нормально работало.(в программировании почти не шарю. оиентируюсь только из 5ой страницы курса)
Заранее благодарю за любую оказанную помощь)
Webspider
 
Сообщения: 22
Зарегистрирован: 18 окт 2009, 12:36
Откуда: Самара

Re: МикроКонтроллер AVR начинающим - общие вопросы

Сообщение Duhas » 10 май 2010, 18:33

ваша проблема не так давно обсуждалась - пользуйте поиск...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: МикроКонтроллер AVR начинающим - общие вопросы

Сообщение avr123.nm.ru » 10 май 2010, 19:27

Webspider писал(а):Купил AT45DB161D в SOIC-8, 28выводного не было(( Скажите, пин RDY/BISY(которого у меня нет) вообще как-нибудь используется в исходниках в avr123/Z7 ?
Да, используется. Если его нет то код надо поментять - убрать его опрос ( в задаче 4 говорится как раз о том что прога висла без ответа этого пина из-за ошибки в схеме ) и либо добавить в прогу паузы по времени гарантирующие завершение операций внутри памяти (это наверно не надежно) либо добавить код для чтения сосотояния "готов" из соотвтетвующего регистра управления внутри памяти.

С программированием придется вам разбираться либо искать готовый код для AT45DB161D в SOIC-8
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Пред.След.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5