roboforum.ru

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

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

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

ADonis » 23 апр 2010, 18:53

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

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

milkpower » 26 апр 2010, 19:34

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

Добавлено спустя 10 минут 39 секунд:
все, нашел, разобрался.

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

avr123.nm.ru » 26 апр 2010, 19:52

... но не скажу как !

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

milkpower » 26 апр 2010, 20:06

я плохо искал поиском по форуму тут все объяснили уже

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] !!!

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().

сам спросил сам ответил, вот и поговорил :)

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

blindman » 28 апр 2010, 05:17

Надо включать предупреждения компилятора, многие ошибки (реальные и потенциальные) видно будет на этапе компиляции

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

milkpower » 28 апр 2010, 23:25

спасибо, воспользуюсь советом.

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

boez » 29 апр 2010, 11:19

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

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


Читаем хелп по функции ds18b20_temperature и узнаем оттуда, в каком формате она возвращает температуру :)

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

Винни » 29 апр 2010, 20:14

ответ был здесь
viewtopic.php?f=2&t=4254

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

rat12 » 06 май 2010, 23:50

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

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

Буду очень признателен, если покажете примеры, как это можно сделать. Заранее большое спасибо!

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

galex1981 » 07 май 2010, 00:00

Да, можно через Уарт прошивать МК. Для этого следует прошить МК прошивкой Bootloader-а, например как в: viewtopic.php?f=58&t=7269. А затем программой avrdude прошивать через последовательный порт. Подробней поищите на Форуме по слову Bootloader

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

Webspider » 10 май 2010, 18:29

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

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

Duhas » 10 май 2010, 18:33

ваша проблема не так давно обсуждалась - пользуйте поиск...

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

avr123.nm.ru » 10 май 2010, 19:27

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

С программированием придется вам разбираться либо искать готовый код для AT45DB161D в SOIC-8


Rambler\'s Top100 Mail.ru counter