roboforum.ru

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

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

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

UnDemocracy » 27 фев 2009, 21:01

Ну, с шимом-то это понятно, но меня интересует именно проблема столь низкого "ногодрыгания". В упор не вижу по даташиту, где пожет потеряться столько тактов... :(
Может, многоуважаемый AVR знает? :roll:

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

avr123.nm.ru » 27 фев 2009, 21:13

UnDemocracy писал(а):можно ли сделать так, чтобы он "задёргал" ногой хотя бы на 1 МГц, а если можно, то как?

Можно пачки импульсов выдавать написав много раз подряд строчку

PORTC.5 ^= 1;

И это в цикле сделать.

Добавлено спустя 2 минуты 13 секунд:
UnDemocracy писал(а):Может, многоуважаемый AVR знает? :roll:

Вызов прерывания занимает время и прочие бяки. Можно в симуляторе прогнать и такты посчитать, или по АСМ лиситингу посмотреть.

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

EdGull » 27 фев 2009, 21:35

делитель на 8 выключить не забыл?

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

UnDemocracy » 27 фев 2009, 21:46

Я принципиально запустил МК со всеми пределителями по очереди и везде наблюдал частоту "дрыгания" много менее ожидаемой.

...чисто подсознательно думал, что прерывания быстрее будут :oops: Ошибся значит. Буду в цикле делать.

Спасибо Вам за ответы, завтра на железе попробую, мне оно более "ближе к телу", чем Proteus. :roll:

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

regenerator » 15 мар 2009, 13:27

Подскажите, как работать с ЖКИ WH1602O-YYE-CTK? Пробовал как написано здесь: avr123.nm.ru/Z5.HTM, но на включение питания индикатор никак не реагирует, пробовал с мегой8 и 32, результат один и тот же. Для меги 32 подключал так:
Мега32-ЖКИ
40-11
39-10
38-9
36-4
35-3
34-2
33-1
Про питание индикатора не забыл, реостат тоже повесил, только вот не сказано, куда его выкручивать к плюсу или минусу, у меня он всегда был в среднем положении. Фьюзы все «1», кроме SPIEN. Вот код:
Код: Выделить всёРазвернуть
#include <mega32.h>
#asm
   .equ __lcd_port=0x1B ;PORTA
#endasm
#include <lcd.h>
void main(void)
{
lcd_init(16);
while (1)
      {
     lcd_gotoxy(5,0);
lcd_putsf("Hello");
lcd_gotoxy(2,1);
lcd_putsf("avr123.nm.r");
lcd_putsf("u");
      };
}

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

avr123.nm.ru » 15 мар 2009, 14:13

regenerator писал(а):Подскажите, как работать с ЖКИ WH1602O-YYE-CTK ? Пробовал как написано здесь: http://avr123.nm.ru/z5.htm - но на включение питания индикатор никак не реагирует


В симуляторах ваша прога работает ?

regenerator писал(а): реостат тоже повесил, только вот не сказано, куда его выкручивать к плюсу или минусу, у меня он всегда был в среднем положении.


Если в схеме есть ПОТЕНЦИОМЕТР то ЧЁ с ним делать надо ?
Последний раз редактировалось avr123.nm.ru 15 мар 2009, 14:59, всего редактировалось 1 раз.

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

rig » 15 мар 2009, 14:18

контрастность надо покрутить, гдето почти в крайнем положении переменника появятся черные квадратики, немного отвернуть чтоб погасли и можно дальше работать

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

regenerator » 15 мар 2009, 14:34

Ну я и дуб!))) Оказалось надо было всеголишь переменник повернуть. Всё работает. Спасибо rig-у за подсказку и, конечно avr123.nm.ru за курс!

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

regenerator » 16 мар 2009, 14:59

Вопрос следующий: как отображать на индикаторе значение переменной, например,
Код: Выделить всёРазвернуть
int temp=5;

Если делать так:
Код: Выделить всёРазвернуть
char lcd_buffer[33];
sprintf(lcd_buffer,"t=",temp);

То на индикаторе пусто.
А если так:
Код: Выделить всёРазвернуть
lcd_putchar(temp); 

То на индикаторе разные каракули, буквы, цифры и т.д. и т.п. в зависимости от значения переменной.

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

avr123.nm.ru » 16 мар 2009, 15:07

вот так: только не пихайте в ЧАР ИНТ !

Изображение

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

rig » 16 мар 2009, 15:29

берем кодевижен и примеры из него по работе с ЛСД, основы есть. длаьше думать и читать хелп вернее наоборот.
lcd_puts(lcd_buffer);

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

regenerator » 16 мар 2009, 15:30

Вылезла какая-то ошибка несовместимости чегото с чемта.
Пробовал и int temp=5; и char temp=5; как правильно объявить?
----------------------------------------------------------------
Разобрался) Оказывается надо было делать так:
Код: Выделить всёРазвернуть
sprintf(buffer,"%2d",temp); 
lcd_puts(buffer);

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

CRivlaldo » 17 мар 2009, 10:03

Здравствуйте!
Третий день мучаюсь с МК Mega32.
Схему подключения взял с pcports.ru:
Изображение
Только вместо подключения через LPT использую COM, соответственно шлейф подсоединен иначе.
Пытался записать примитивную программу, подающую 1 к светодиоду на порту PB0.
Код: Выделить всёРазвернуть
#include "iom32.h"
#include "inavr.h"

void main()
{
  DDRB_Bit0 = 1;
  while(1)
  {
    PORTB_Bit0 = 1;
    __delay_cycles(1000000);
   // PORTB_Bit0 = 0;
   // __delay_cycles(1000000);
  }//упростил все донельзя
}

В качестве программатора использую Uniprof. МК успешно чистится, программируется, проверяется на идентичность, но не работает. По завершению программирования светодиод не горит. Заметил такую вещь: если переключить в Uniprof рабочий порт, а потом обратно, светодиод мигает 1 раз. В случае когда программа загружена. "Чистый" МК при возвращении на правильный порт светодиодом не мигает.
Фьюзы не трогал, кварц на плате стоит (9,6МГц). Раз МК должен работать от встроенного генератора, может его отпаять?
Подскажите, пожалуйста, в чем может быть ошибка? Где ее искать: в плате (пайка в порядке, может в схеме, что-то не то), в программе, во фьюзах?

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

galex1981 » 17 мар 2009, 10:26

Посмотри фьюзы

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

EdGull » 17 мар 2009, 10:31

а где код что бы светодиод мигал???

и полную схему в студию!


Rambler\'s Top100 Mail.ru counter