Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
04.01.2015, 00:33
|
|
Заблокирован
Регистрация: 26.12.2013
Сообщений: 379
Сказал спасибо: 66
Сказали Спасибо 61 раз(а) в 23 сообщении(ях)
|
Re: Часы на progress bar
МК переподключил, как тут http://2.bp.blogspot.com/-1JI9ScsZso...en_segment.BMP
а как друг от друга шины развязать?
|
|
|
|
04.01.2015, 00:37
|
|
Заблокирован
Регистрация: 26.12.2013
Сообщений: 379
Сказал спасибо: 66
Сказали Спасибо 61 раз(а) в 23 сообщении(ях)
|
Re: Часы на progress bar
Сообщение от omercury
|
Если это разные шины (с разными именами), то нормально.
Кстати, а зачем обрабатывать нажатия кнопок по прерыванию?
|
я шинам не ставил названия, а сейчас их можно поставить?
кнопки по прерыванию - чтоб не грузили основную программу, если она будет
|
|
|
|
04.01.2015, 09:31
|
|
Заблокирован
Регистрация: 26.12.2013
Сообщений: 379
Сказал спасибо: 66
Сказали Спасибо 61 раз(а) в 23 сообщении(ях)
|
Re: Часы на progress bar
схему доделал
clock_progress - SPI.zip
сейчас хочу научиться хоть что то записывать по СПИ в первый столбик
но ничего не работает, терминал показывает 11
Код:
|
#include ‹mega8.h›
#include ‹spi.h›
#include ‹delay.h›
void main(void)
{
PORTB=0x02;
DDRB=0x2F;
PORTC=0x03;
DDRC=0x00;
// SPI initialization
// SPI Type: Master
// SPI Clock Rate: 125,000 kHz
// SPI Clock Phase: Cycle Half
// SPI Clock Polarity: Low
// SPI Data Order: MSB First
SPCR=0x52;
SPSR=0x00;
while (1)
{
spi('1'); //Отсылаем 1,
delay_ms(100); //ждем
spi('0'); //Отсылаем 0,
delay_ms(100); //ждем
};
} |
Последний раз редактировалось WindoЗavr; 04.01.2015 в 09:35.
|
|
|
|
04.01.2015, 13:36
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Часы на progress bar
Попробуй CS еще дергать. Всем помогает.
PORTB.B0 = 0;
передать 5 байт
PORTB.B0 = 1;
|
|
|
|
04.01.2015, 15:31
|
|
Заблокирован
Регистрация: 26.12.2013
Сообщений: 379
Сказал спасибо: 66
Сказали Спасибо 61 раз(а) в 23 сообщении(ях)
|
Re: Часы на progress bar
Код:
|
PORTD.0=0;
spi('1'); //Отсылаем 1,
delay_ms(100); //ждем
spi('0'); //Отсылаем 0,
delay_ms(100); //ждем
PORTD.0=1; |
пока на другой порт его перекинул, заработало
только не совсем понятно по какому принципу поданное в СПИ выводится на дисплей
сейчас на верхнем - 00001100
до меня начало доходить как СПИ работает
а, вот так получилось все через один зажечь
SPDR = 0b01010101;
Последний раз редактировалось WindoЗavr; 04.01.2015 в 15:49.
|
|
|
|
05.01.2015, 09:39
|
|
Заблокирован
Регистрация: 26.12.2013
Сообщений: 379
Сказал спасибо: 66
Сказали Спасибо 61 раз(а) в 23 сообщении(ях)
|
Re: Часы на progress bar
а как сделать форматирование данных времени, для передачи их на индикатрары?
|
|
|
|
05.01.2015, 11:23
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.12.2007
Адрес: Екатеринбург
Сообщений: 2,731
Сказал спасибо: 2,454
Сказали Спасибо 893 раз(а) в 580 сообщении(ях)
|
Re: Часы на progress bar
Делить. То на 6, то на 10.
|
|
|
|
14.01.2015, 19:57
|
|
Заблокирован
Регистрация: 26.12.2013
Сообщений: 379
Сказал спасибо: 66
Сказали Спасибо 61 раз(а) в 23 сообщении(ях)
|
Re: Часы на progress bar
крайняя схема, пытаюсь написать преобразователь времени в индикацию
в данном коде должно в первом столбике подряд засветиться 17 светодиодов, далее вместо числа 17 будет подставляться вычисленное значение
почему то светятся все светодиоды столбика, хотя код вроде правильный
Код:
|
#include ‹mega8.h›
#include ‹spi.h›
#include ‹delay.h›
unsigned char sek;
void main(void)
{
PORTB=0x02;
DDRB=0x2F;
PORTD=0x00;
DDRD=0xff;
PORTC=0x00;
DDRC=0xff;
SPCR=0x52;
SPSR=0x00;
while (1)
{
sek =17;
PORTC.3=1;
PORTD.0=0;
if (sek›8) {
PORTD.0=0;
SPDR=255;
sek=sek-8;
PORTD.0=1;
}
else {
if (sek›=1) {
PORTD.0=0;
SPDR=1;
sek=sek-1;
PORTD.0=1;
};
};
};
} |
где я накосячил?
Последний раз редактировалось WindoЗavr; 14.01.2015 в 20:00.
|
|
|
|
15.01.2015, 17:39
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Часы на progress bar
Сообщение от WindoЗavr
|
где я накосячил?
|
17 раз передал по 8 единичек.
Вместо пяти раз...
|
|
|
|
15.01.2015, 18:17
|
|
Заблокирован
Регистрация: 26.12.2013
Сообщений: 379
Сказал спасибо: 66
Сказали Спасибо 61 раз(а) в 23 сообщении(ях)
|
Re: Часы на progress bar
Сообщение от omercury
|
17 раз передал по 8 единичек.
Вместо пяти раз...
|
как так?
я же вывожу 8 по СПИ и от 17 отнимаю тоже 8
потом вывожу 8 по СПИ и от 9 отнимаю 8
а потом вывожу по единичке
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 03:30.
|
|