18.04.2013, 23:55
|
#691
|
Временная регистрация
Регистрация: 08.02.2010
Сообщений: 62
Сказал спасибо: 4
Сказали Спасибо 14 раз(а) в 12 сообщении(ях)
|
Re: FAQ по STM8
обработчик
/**
* @brief Timer1 Update/Overflow/Trigger/Break Interrupt routine.
* @param None
* @retval None
*/
INTERRUPT_HANDLER(TIM1_UPD_OVF_TRG_BRK_IRQHandler, 11)
{
...
...
...
TIM1_ClearFlag(TIM1_FLAG_UPDATE);//Сброс флага прерывания
}
это из stm8s_it.c
|
|
|
|
19.04.2013, 15:06
|
#692
|
Прописка
Регистрация: 31.03.2013
Сообщений: 146
Сказал спасибо: 50
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: FAQ по STM8
Новый вопрос, команда разрешает прерывания, а запретить какой командой ?
|
|
|
|
19.04.2013, 15:25
|
#693
|
Гражданин KAZUS.RU
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
|
Re: FAQ по STM8
разрешает прерывания, а запретить какой командой ?
sim
|
|
|
Сказали "Спасибо" oleg110592
|
|
|
19.04.2013, 15:33
|
#694
|
Временная регистрация
Регистрация: 08.02.2010
Сообщений: 62
Сказал спасибо: 4
Сказали Спасибо 14 раз(а) в 12 сообщении(ях)
|
Re: FAQ по STM8
если в IAR, то можно и так писать
__enable_interrupt(); /* RIM */
__disable_interrupt(); /* SIM */
|
|
|
|
19.04.2013, 15:47
|
#695
|
Прописка
Регистрация: 31.03.2013
Сообщений: 146
Сказал спасибо: 50
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: FAQ по STM8
Правильно я настроил SPI?
Нужно было
// SPI Type: Master
// SPI Clock Rate: 4000 kHz
// SPI Clock Phase: Cycle Half
// SPI Clock Polarity: Low
// SPI Data Order: MSB First
Код:
|
void SPI_Init(void)
{
SPI_CR1_SPE = 0; // Disable SPI.
SPI_CR1_BR=1; // 001: fMASTER/4
SPI_CR1_LSBFIRST =0; //MSB First
SPI_CR1_MSTR=1; // Master
SPI_CR1_CPOL = 0; // Clock is low when idle.
SPI_CR1_CPHA = 0; // Sample the data on the rising edge.
//SPI_ICR_TXIE = 1; // Enable the SPI TXE interrupt.
//SPI_ICR_RXIE = 1; // Enable the SPI RXE interrupt.
SPI_CR1_SPE = 1; // Enable SPI.
} |
Правильно ли сделал прием/передачу ?
Код:
|
unsigned char spi_transfer(volatile unsigned char data)
{
SPI_DR = data;
while (!(SPI_SR_TXE));
return SPI_DR;
} |
Последний раз редактировалось stmfaq; 19.04.2013 в 16:30.
|
|
|
|
19.04.2013, 17:01
|
#696
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от stmfaq
|
Правильно ли сделал прием/передачу ?
Код:
|
unsigned char spi_transfer(volatile unsigned char data)
{
SPI_DR = data;
while (!(SPI_SR_TXE));
return SPI_DR;
} |
|
А что вернет функция, если данные не приняты? Надо бы дождаться данных...
И почему входной параметр обязательно volatile?
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
19.04.2013, 17:23
|
#697
|
Прописка
Регистрация: 31.03.2013
Сообщений: 146
Сказал спасибо: 50
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от ut1wpr
|
Надо бы дождаться данных...
|
Если предложите свой вариант, буду очень благодарен. volatile не обязательно , это влипил на автомате
|
|
|
|
19.04.2013, 17:39
|
#698
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от stmfaq
|
Если предложите свой вариант, буду очень благодарен. volatile не обязательно , это влипил на автомате
|
Я уже предложил. Дождаться данных.
А вообще мне ваш подход к обучению нравится:
Цитата:
|
Если да, то сделайте проект с использованием SPI и SPL , это займет не больше пары минут. И дайте мне этот проект ,посмотреть как он создан и куда что прикреплено , тогда я пойму где я допускаю ошибку.
|
Я, кажется повторяюсь, цитируя одного из участников форумов: "Научить нельзя, можно лишь научится".
__________________
С уважением,
Vic / ut1wpr
Последний раз редактировалось ut1wpr; 19.04.2013 в 17:44.
|
|
|
|
19.04.2013, 17:46
|
#699
|
Прописка
Регистрация: 31.03.2013
Сообщений: 146
Сказал спасибо: 50
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от ut1wpr
|
Дождаться данных.
|
А это разве не оно?
Код:
|
while (!(SPI_SR_TXE)); |
|
|
|
|
19.04.2013, 17:51
|
#700
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: FAQ по STM8
Цитата:
|
И почему входной параметр обязательно volatile?
|
Потому что может, прямо на ходу, взять и измениться.
__________________
There's always more than one way to skin a cat.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 14:37.
|
|