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

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

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

Сообщение UnDemocracy » 27 фев 2009, 21:01

Ну, с шимом-то это понятно, но меня интересует именно проблема столь низкого "ногодрыгания". В упор не вижу по даташиту, где пожет потеряться столько тактов... :(
Может, многоуважаемый AVR знает? :roll:
Аватара пользователя
UnDemocracy
 
Сообщения: 15
Зарегистрирован: 23 дек 2008, 00:51
Откуда: Москва
прог. языки: C, Pascal, Fortran, ASM

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

Сообщение avr123.nm.ru » 27 фев 2009, 21:13

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

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

PORTC.5 ^= 1;

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

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

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

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

Сообщение EdGull » 27 фев 2009, 21:35

делитель на 8 выключить не забыл?
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

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

Сообщение UnDemocracy » 27 фев 2009, 21:46

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

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

Спасибо Вам за ответы, завтра на железе попробую, мне оно более "ближе к телу", чем Proteus. :roll:
Аватара пользователя
UnDemocracy
 
Сообщения: 15
Зарегистрирован: 23 дек 2008, 00:51
Откуда: Москва
прог. языки: C, Pascal, Fortran, ASM

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");
      };
}
Лучший способ запомнить что нибудь — постараться это забыть.
regenerator
 
Сообщения: 50
Зарегистрирован: 28 май 2008, 21:56
Откуда: планета Земля
прог. языки: Паскаль, Си.

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 раз.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

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

Сообщение rig » 15 мар 2009, 14:18

контрастность надо покрутить, гдето почти в крайнем положении переменника появятся черные квадратики, немного отвернуть чтоб погасли и можно дальше работать
Аватара пользователя
rig
 
Сообщения: 1437
Зарегистрирован: 03 авг 2007, 19:43
Откуда: Екатеринбург
прог. языки: Си, асм со словарем

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

Сообщение regenerator » 15 мар 2009, 14:34

Ну я и дуб!))) Оказалось надо было всеголишь переменник повернуть. Всё работает. Спасибо rig-у за подсказку и, конечно avr123.nm.ru за курс!
Лучший способ запомнить что нибудь — постараться это забыть.
regenerator
 
Сообщения: 50
Зарегистрирован: 28 май 2008, 21:56
Откуда: планета Земля
прог. языки: Паскаль, Си.

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

Сообщение regenerator » 16 мар 2009, 14:59

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

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

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

То на индикаторе разные каракули, буквы, цифры и т.д. и т.п. в зависимости от значения переменной.
Лучший способ запомнить что нибудь — постараться это забыть.
regenerator
 
Сообщения: 50
Зарегистрирован: 28 май 2008, 21:56
Откуда: планета Земля
прог. языки: Паскаль, Си.

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

Сообщение avr123.nm.ru » 16 мар 2009, 15:07

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

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

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

Сообщение rig » 16 мар 2009, 15:29

берем кодевижен и примеры из него по работе с ЛСД, основы есть. длаьше думать и читать хелп вернее наоборот.
lcd_puts(lcd_buffer);
Аватара пользователя
rig
 
Сообщения: 1437
Зарегистрирован: 03 авг 2007, 19:43
Откуда: Екатеринбург
прог. языки: Си, асм со словарем

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

Сообщение regenerator » 16 мар 2009, 15:30

Вылезла какая-то ошибка несовместимости чегото с чемта.
Пробовал и int temp=5; и char temp=5; как правильно объявить?
----------------------------------------------------------------
Разобрался) Оказывается надо было делать так:
Код: Выделить всё
sprintf(buffer,"%2d",temp);
lcd_puts(buffer);
Лучший способ запомнить что нибудь — постараться это забыть.
regenerator
 
Сообщения: 50
Зарегистрирован: 28 май 2008, 21:56
Откуда: планета Земля
прог. языки: Паскаль, Си.

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МГц). Раз МК должен работать от встроенного генератора, может его отпаять?
Подскажите, пожалуйста, в чем может быть ошибка? Где ее искать: в плате (пайка в порядке, может в схеме, что-то не то), в программе, во фьюзах?
CRivlaldo
 
Сообщения: 5
Зарегистрирован: 17 мар 2009, 09:41
Откуда: Казань

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

Сообщение galex1981 » 17 мар 2009, 10:26

Посмотри фьюзы
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

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

Сообщение EdGull » 17 мар 2009, 10:31

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

и полную схему в студию!
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Пред.След.

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

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

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