Мелкие вопросы по МК и ПЛИС.
-
Chettuser
Re: Мелкие вопросы по МК и ПЛИС.
А что скажете по поводу моего вопроса?
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Весьма странная конструкция
1: begin i=0; cout=clk; end;
Смущает зачем в процессе реагирующему на положительный фронт, присваивать значение выходу clk<=1? может потому квартус и ругается?
Более того, coutу присваивается значения в двух местах. вы уж выберите одно чтоли
1: begin i=0; cout=clk; end;
Смущает зачем в процессе реагирующему на положительный фронт, присваивать значение выходу clk<=1? может потому квартус и ругается?
Более того, coutу присваивается значения в двух местах. вы уж выберите одно чтоли
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
-
skk
- Сверлит текстолит когтями
- Сообщения: 1123
- Зарегистрирован: Вт июн 30, 2009 14:56:58
- Откуда: Казань
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
извините, что вмешиваюсь в Вашу беседу, что можете сказать про микру DS12887 компании DALLAS? как я понял это микра часов реального времени с батарей на борту. только я че-то не нашел схемы с этой микрой, може дать ссылку если видели 
Теория и практика иногда сталкиваются. Когда это случается, теория проигрывает. Всегда.
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
skk писал(а):...что можете сказать про микру DS12887 компании DALLAS?
Если вы ко мне, то я ничего нового не скажу- в моей практике надобности в ней не было
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
-
Chettuser
Re: Мелкие вопросы по МК и ПЛИС.
Meteor писал(а):Смущает зачем в процессе реагирующему на положительный фронт, присваивать значение выходу clk<=1?
Попытка применить "ключ" для случая i=0.
-
skk
- Сверлит текстолит когтями
- Сообщения: 1123
- Зарегистрирован: Вт июн 30, 2009 14:56:58
- Откуда: Казань
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Meteor писал(а):Если вы ко мне, то я ничего нового не скажу- в моей практике надобности в ней не было
Всем
Теория и практика иногда сталкиваются. Когда это случается, теория проигрывает. Всегда.
-
nozyl
- Первый раз сказал Мяу!
- Сообщения: 26
- Зарегистрирован: Пн дек 24, 2012 18:32:07
- Откуда: Беларусь, Гомель
подключение к программатору
Доброго времени суток!
Прошу помочь разобратся в подключении к программатору громова (com) микросхему PIC16F628A
Прошу помочь разобратся в подключении к программатору громова (com) микросхему PIC16F628A
Последний раз редактировалось nozyl Пн дек 24, 2012 20:16:16, всего редактировалось 1 раз.
Re: Никак не могу въехать в самые элементарные вопросы.
Добый день, не могу разобраться с работой каунтера на AVR (atmega8). По аналогии с обучалкой сделал моргалку, только вместо лампочек - последовательный вывод на 8-сегментный индикатор цифр от 0 до 9. Смена цифр идет по прерыванию Timer/Counter1 Compare Match A, пытаюсь настроить смену скорости переключения изменением значения каунтера по кнопке:
При нажатии на кнопку 3 - не происходит ничего, при нажатии на 4 - пропускает одну цифру на вывод. Не могу понять, в какую сторону копать...
Полный код:
Код: Выделить всё
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,0b10101111Re: Мелкие вопросы по МК и ПЛИС.
Хочу начать обучаться в направлении програмирования и использования МК, но инфы так много что не знаешь с чего начать. Например с каких мк AVR или PIC? Что неопходимо уже иметь в багаже знаний и умений чтобы начать? Бывалые люди в этом вопросе подскажете как быть и за что браться, как эффективнее начать обучение? Можно носом ткнуть в соответсвующие источники. Всякой помощи буду премного благодарен.
Re: Мелкие вопросы по МК и ПЛИС.
Благодарю! А почему именно семейство AVR? В чем их преимущество или просто отличия?
Re: Мелкие вопросы по МК и ПЛИС.
AVR - это прошлый век. Начинайте лучше с MSP430 от техасских инструментов. Простенькие микросхемки - никакой возни с фьюзами. правда для программирования нужно купить ихний Launchpad - макетка с программатором/отладчиком. Продаётся очень дёшево и работает через USB - не надо никаких LPT или com-портов. Если нужно что помощнее - берете от ST контроллеры STM8S, STM8L или, вообще, STM32.
А на самом деле - лучше выбирать то, что приглянется или первым попадёт под руку. Или кто есть из знакомых специалистов. Можешь заглянуть в тему где "девушка с паяльником желает познакомиться" - там тоже можно что-нибудь почерпнуть. Короче, послушай советов и делай по-своему.
А на самом деле - лучше выбирать то, что приглянется или первым попадёт под руку. Или кто есть из знакомых специалистов. Можешь заглянуть в тему где "девушка с паяльником желает познакомиться" - там тоже можно что-нибудь почерпнуть. Короче, послушай советов и делай по-своему.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Re: Мелкие вопросы по МК и ПЛИС.
Человек спросил про AVR/PIC, я ответил. Просто эти две платформы гораздо легче в изучении (и до сих пор достаточно популярны), чем упомянутые вами STM (про Cortex я вообще промолчу). Да и нагрузочная способность портов позволяет цеплять к ним те же светодиоды без опаски спалить порты. Программаторы для обеих платформ давно уже не требуют ни COM, ни LPT и вы это прекрасно знаете. Зачем же вводить человека в заблуждение. Предложенные вами MSP430 достаточно специфичны, ну и с периферией там весьма небогато в младших семействах. Не так ли?
Re: Мелкие вопросы по МК и ПЛИС.
AVR - это прошлый век.
А алгебра логики - 19 век вообще, но без неё никуда
VR/PIC очень просты с точки зрения архитектуры, и хорошо подходят для обучения. После них уже не страшны более серьёзные МК. Иначе есть риск бездумного копипаста кусков кода и использования тяжёлых библиотек, без понимания сути, там, где этого совсем не надо. А это не есть хорошо.
Re: Мелкие вопросы по МК и ПЛИС.
Спасибо люди добрые) Сделал выводы, теперь знаю в каком направлении двигаться)
Re: Мелкие вопросы по МК и ПЛИС.
Мой пост был о том, что не надо зацикливаться на выборе из двух возможностей. Есть и другие.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Re: Мелкие вопросы по МК и ПЛИС.
Прошу прощения, что копирую с соседней ветки, изначальный вопрос, просто ещё не до конца изучил структуру форума. Начал изучать мк 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"); //для исключения влияния оптимизации
}
}
}
Спойлер
// ----------// Учебный проект по 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: Мелкие вопросы по МК и ПЛИС.
Так у вас же каждая строчка раскомментирована!
Меняете на нужный порт (GPIOC, и в цикле не забудьте), и нужный бит в дефайне (LED_BIT)
Это просто следуя логике.
Код: Выделить всё
#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 - ограничение скорости отключено
Меняете на нужный порт (GPIOC, и в цикле не забудьте), и нужный бит в дефайне (LED_BIT)
Это просто следуя логике.
Re: Мелкие вопросы по МК и ПЛИС.
Помогите засветить модуль светодиодов. Попался под руку вот такой модуль китайский: http://leddiscovery.en.made-in-china.co ... odule.html Никакой инструкции нет, есть только маркировка входов. Подключил его к Atmega8535. Получилось поиграться с цветами, можно засветить либо весь экран, либо по половинкам. А как засветить отдельную точку?
Входы у модуля: по два на каждый цвет (R1,G1,B1,R2,G2,B2 верхняя и нижняя половины) плюс входы A,B,C с которыми я до сих пор не пойму логики. И стандартные Clock и OE. С последними двумя разобрался, с цветами тоже, а вот в ABC что писать? Плюс еще вход LAT есть непонятный. Даташит не нашел на модуль.
Входы у модуля: по два на каждый цвет (R1,G1,B1,R2,G2,B2 верхняя и нижняя половины) плюс входы A,B,C с которыми я до сих пор не пойму логики. И стандартные Clock и OE. С последними двумя разобрался, с цветами тоже, а вот в ABC что писать? Плюс еще вход LAT есть непонятный. Даташит не нашел на модуль.