Страница 390 из 628
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс дек 23, 2012 19:01:13
Chettuser
А что скажете по поводу
моего вопроса?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс дек 23, 2012 20:28:35
Meteor
Весьма странная конструкция
1: begin i=0; cout=clk; end;
Смущает зачем в процессе реагирующему на положительный фронт, присваивать значение выходу clk<=1? может потому квартус и ругается?
Более того, coutу присваивается значения в двух местах. вы уж выберите одно чтоли
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс дек 23, 2012 20:43:09
skk
извините, что вмешиваюсь в Вашу беседу, что можете сказать про микру DS12887 компании DALLAS? как я понял это микра часов реального времени с батарей на борту. только я че-то не нашел схемы с этой микрой, може дать ссылку если видели

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс дек 23, 2012 20:51:49
Meteor
skk писал(а):...что можете сказать про микру DS12887 компании DALLAS?
Если вы ко мне, то я ничего нового не скажу- в моей практике надобности в ней не было
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пн дек 24, 2012 05:06:24
Chettuser
Meteor писал(а):Смущает зачем в процессе реагирующему на положительный фронт, присваивать значение выходу clk<=1?
Попытка применить "ключ" для случая i=0.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пн дек 24, 2012 06:57:37
skk
Meteor писал(а):Если вы ко мне, то я ничего нового не скажу- в моей практике надобности в ней не было
Всем

подключение к программатору
Добавлено: Пн дек 24, 2012 18:42:08
nozyl
Доброго времени суток!
Прошу помочь разобратся в подключении к программатору громова (com) микросхему PIC16F628A
Re: Никак не могу въехать в самые элементарные вопросы.
Добавлено: Пн дек 24, 2012 19:24:21
buregon
Добый день, не могу разобраться с работой каунтера на AVR (atmega8). По аналогии с обучалкой сделал моргалку, только вместо лампочек - последовательный вывод на 8-сегментный индикатор цифр от 0 до 9. Смена цифр идет по прерыванию Timer/Counter1 Compare Match A, пытаюсь настроить смену скорости переключения изменением значения каунтера по кнопке:
Код: Выделить всё
ldi Temp2,0x0d
sbis PINC, 3
out OCR1AH,Temp2
ldi Temp2,0x3d
sbis PINC, 4
out OCR1AH,Temp2
При нажатии на кнопку 3 - не происходит ничего, при нажатии на 4 - пропускает одну цифру на вывод. Не могу понять, в какую сторону копать...
Полный код:
Спойлер
Код: Выделить всё
.cseg
.org 0
rjmp Reset ;1 All Reset
rjmp INT_0 ;2 External Interrupt Request 0
rjmp INT_1 ;3 External Interrupt Request 1
rjmp TM2_COM ;4 Timer/Counter2 Compare Match
rjmp TM2_OVF ;5 Timer/Counter2 Overflow
rjmp TM1_CAPT ;6 Timer/Counter1 Capture Event
rjmp TM1_COMA ;7 Timer/Counter1 Compare Match A
rjmp TM1_COMB ;8 Timer/Counter1 Compare Match B
rjmp TM1_OVF ;9 Timer/Counter1 Overflow
rjmp TM0_OVF ;10 Timer/Counter0 Overflow
rjmp SerTrCom ;11 Serial Transfer Complete
rjmp UsRxCom ;12 USART Rx Complete
rjmp UsEmt ;13 USART Data Register Empty
rjmp UsTxCom ;14 USART Tx Complete
rjmp ADCCom ;15 ADC Conversion Complete
rjmp EprRdy ;16 EEPROM Ready
rjmp AnCom ;17 Analog Comparator
rjmp TWSerIn ;18 Two-Wire Serial Interface
rjmp ProMemRdy ;19 Store Program Memory Ready
;Reset: ;1 All Reset
INT_0: ;2 External Interrupt Request 0
INT_1: ;3 External Interrupt Request 1
TM2_COM: ;4 Timer/Counter2 Compare Match
TM2_OVF: ;5 Timer/Counter2 Overflow
TM1_CAPT: ;6 Timer/Counter1 Capture Event
;TM1_COMA: ;7 Timer/Counter1 Compare Match A
TM1_COMB: ;8 Timer/Counter1 Compare Match B
TM1_OVF: ;9 Timer/Counter1 Overflow
TM0_OVF: ;10 Timer/Counter0 Overflow
SerTrCom: ;11 Serial Transfer Complete
UsRxCom: ;12 USART Rx Complete
UsEmt: ;13 USART Data Register Empty
UsTxCom: ;14 USART Tx Complete
ADCCom: ;15 ADC Conversion Complete
EprRdy: ;16 EEPROM Ready
AnCom: ;17 Analog Comparator
TWSerIn: ;18 Two-Wire Serial Interface
ProMemRdy: ;19 Store Program Memory Ready
reti
.def Temp=R16 ; общий
.def Temp1=R17 ; забит счетчиком массива
.def Temp2=R18
.def Temp3=R19
.def Temp4=R20 ; флаг для точки
Reset: ldi Temp,0b11111111
out DDRD,Temp
ldi Temp,0b00010000
out TIMSK,Temp
ldi Temp,0b00000011
out TCCR1B,Temp
ldi Temp,0x3d
out OCR1AH,Temp
ldi Temp,0x09
out OCR1AL,Temp
ldi r16,low(RAMEND)
out spl,r16
ldi r16,high(RAMEND)
out sph,r16
ldi Temp1,0b00000001
ldi Temp,0
out TCNT1H,Temp
out TCNT1L,Temp
sei
;#####################################
;Основной цикл
;#####################################
Inf:
sbis PINC, 0
ldi Temp1,10
sbis PINC, 1
ldi Temp4,1
sbis PINC, 2
ldi Temp4,0
ldi Temp2,0x0d
sbis PINC, 3
out OCR1AH,Temp2
ldi Temp2,0x3d
sbis PINC, 4
out OCR1AH,Temp2
jmp Inf
;#####################################
;конец основного цикла
;#####################################
;#####################################
;Прерывание по счетчику
;#####################################
TM1_COMA:
ldi Temp,0 ;
out TCNT1l,Temp ;
out TCNT1h,Temp ;Обнуление таймера
cpi Temp1,10 ;Проверка конца массива
breq Init ;Если конец - пеход на обнулени адреса
ReadArray:
ldi ZH,High(Array*2)
ldi ZL,Low(Array*2)
ldi Temp,0
add ZL,Temp1
adc ZH,Temp
lpm
mov Temp,R0
inc Temp1
cpi Temp4, 1
breq point
rjmp Output
point:
ldi Temp3, 0b01000000
add Temp,Temp3
rjmp Output
Init: ldi Temp1,0
rjmp ReadArray
Output: out PortD,Temp
reti
;#####################################
;Конец прерывания по счетчику
;#####################################
Array:
.db 0b10011111,0b00000101,0b10110011,0b10100111,0b00101101,0b10101110,0b10111110,0b00000111,0b10111111,0b10101111
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 25, 2012 12:30:43
1essor1
Хочу начать обучаться в направлении програмирования и использования МК, но инфы так много что не знаешь с чего начать. Например с каких мк AVR или PIC? Что неопходимо уже иметь в багаже знаний и умений чтобы начать? Бывалые люди в этом вопросе подскажете как быть и за что браться, как эффективнее начать обучение? Можно носом ткнуть в соответсвующие источники. Всякой помощи буду премного благодарен.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 25, 2012 12:45:42
murzila
Начните хотя бы
отсюда или
отсюда.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 25, 2012 12:56:44
1essor1
Благодарю! А почему именно семейство AVR? В чем их преимущество или просто отличия?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 25, 2012 13:06:21
uldemir
AVR - это прошлый век. Начинайте лучше с MSP430 от техасских инструментов. Простенькие микросхемки - никакой возни с фьюзами. правда для программирования нужно купить ихний Launchpad - макетка с программатором/отладчиком. Продаётся очень дёшево и работает через USB - не надо никаких LPT или com-портов. Если нужно что помощнее - берете от ST контроллеры STM8S, STM8L или, вообще, STM32.
А на самом деле - лучше выбирать то, что приглянется или первым попадёт под руку. Или кто есть из знакомых специалистов. Можешь заглянуть в тему где "девушка с паяльником желает познакомиться" - там тоже можно что-нибудь почерпнуть. Короче, послушай советов и делай по-своему.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 25, 2012 14:25:02
murzila
Человек спросил про AVR/PIC, я ответил. Просто эти две платформы гораздо легче в изучении (и до сих пор достаточно популярны), чем упомянутые вами STM (про Cortex я вообще промолчу). Да и нагрузочная способность портов позволяет цеплять к ним те же светодиоды без опаски спалить порты. Программаторы для обеих платформ давно уже не требуют ни COM, ни LPT и вы это прекрасно знаете. Зачем же вводить человека в заблуждение. Предложенные вами MSP430 достаточно специфичны, ну и с периферией там весьма небогато в младших семействах. Не так ли?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 25, 2012 14:54:05
ploop
AVR - это прошлый век.
А алгебра логики - 19 век вообще, но без неё никуда

VR/PIC очень просты с точки зрения архитектуры, и хорошо подходят для обучения. После них уже не страшны более серьёзные МК. Иначе есть риск бездумного копипаста кусков кода и использования тяжёлых библиотек, без понимания сути, там, где этого совсем не надо. А это не есть хорошо.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 25, 2012 15:19:12
1essor1
Спасибо люди добрые) Сделал выводы, теперь знаю в каком направлении двигаться)
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 25, 2012 16:31:38
uldemir
Мой пост был о том, что не надо зацикливаться на выборе из двух возможностей. Есть и другие.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 25, 2012 19:11:40
Volt_A
Прошу прощения, что копирую с соседней ветки, изначальный вопрос, просто ещё не до конца изучил структуру форума. Начал изучать мк ST, конкретно - stm8s103f2, скачал пример, но в нем используются другой порт I/O (да и МК другой), помогите (или ткните носом

), где что изменить, для работы вывода на порт С (конкретно на PC7, так как использую мк в корусе TSSOP20/SO20, а вывода PD там нет: ПО IAR6.0 + ST-Link) , (а ещё лучше, где скачать примеры для этого мк

) заранее спасибо...
Спойлер
// ----------------------------------------------------------------------------
// Учебный проект по STM8
// Урок-1.1 "Hello, world? No! Hello LED!!!"
// Мигание светодиодом с использованием программной задержки
// Автор: Eugeny Monastyrev
// Плата: STM8 Discovery, CLK=16MHz
//
// main.c подходит для любого компилятора IAR, Cosmic, Raisonance
// с использованием определений из библиотеки STMicroelectronics
// для компиляции требуются файлы stm8s.h и stm8s_type.h из библиотеки.
// В файле stm8s.h найдите и закомментируйте #define USE_STDPERIPH_DRIVER
// ----------------------------------------------------------------------------
#include "stm8s.h"
#define LED_BIT 0 //на Discovery светодиод подключен на PD0, активный уровень - 0
void main( void )
{
long i;
//Инициализируем CLK
CLK->ECKR|=CLK_ECKR_HSEEN; //Разрешаем работу генератора с внешним кварцем (HSEEN)
CLK->SWCR|=CLK_SWCR_SWEN; //Разрешаем автопереключение источника Clock при неисправности генератора
CLK->SWR=0xB4; //Включаем clock от кварцевого генератора (HSE)
CLK->CKDIVR=0; //Делители частоты внутреннего и внешнего генератора на 1 - частота ядра максимальная
while(CLK->CMSR!=0xB4); //Ждем стабилизации частоты
CLK->CSSR|=CLK_CSSR_CSSEN; //Разрешаем автопереключение источника Clock на внутренний при неисправности генератора
//Инициализируем GPIO
GPIOD->DDR|=1<<LED_BIT; //PD0 - на вывод
GPIOD->CR1&=~(1<<LED_BIT); //PD0 - открытый сток
GPIOD->CR2&=~(1<<LED_BIT); //PD0 - ограничение скорости отключено
//Собственно мигание
while(1)
{
GPIOD->ODR^=(1<<LED_BIT); //Переключим светодиод
for(i=0;i<200000;i++) //Подождем...
{
asm("nop"); //для исключения влияния оптимизации
}
}
}
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 25, 2012 20:18:57
ploop
Так у вас же каждая строчка раскомментирована!
Код: Выделить всё
#define LED_BIT 0 //на Discovery светодиод подключен на PD0, активный уровень - 0
Код: Выделить всё
//Инициализируем GPIO
GPIOD->DDR|=1<<LED_BIT; //PD0 - на вывод
GPIOD->CR1&=~(1<<LED_BIT); //PD0 - открытый сток
GPIOD->CR2&=~(1<<LED_BIT); //PD0 - ограничение скорости отключено
Меняете на нужный порт (GPIO
C, и в цикле не забудьте), и нужный бит в дефайне (LED_BIT)
Это просто следуя логике.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср дек 26, 2012 11:50:03
masmax
Помогите засветить модуль светодиодов. Попался под руку вот такой модуль китайский:
http://leddiscovery.en.made-in-china.co ... odule.html Никакой инструкции нет, есть только маркировка входов. Подключил его к Atmega8535. Получилось поиграться с цветами, можно засветить либо весь экран, либо по половинкам. А как засветить отдельную точку?
Входы у модуля: по два на каждый цвет (R1,G1,B1,R2,G2,B2 верхняя и нижняя половины) плюс входы A,B,C с которыми я до сих пор не пойму логики. И стандартные Clock и OE. С последними двумя разобрался, с цветами тоже, а вот в ABC что писать? Плюс еще вход LAT есть непонятный. Даташит не нашел на модуль.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср дек 26, 2012 13:09:25
ibiza11