Пт авг 05, 2022 15:04:24
Пт авг 05, 2022 17:42:34
Пт авг 05, 2022 18:06:27
Пт авг 05, 2022 21:20:10
Сб авг 06, 2022 07:58:33
Сб авг 06, 2022 08:55:32
TIM1->CCMR1 = (TIM_CCMR1_OC1PE
|TIM_CCMR1_OC1M_1
|TIM_CCMR1_OC1M_2
|TIM_CCMR1_OC2PE
|TIM_CCMR1_OC2M_1
|TIM_CCMR1_OC2M_2 );
TIM1->CCER = (TIM_CCER_CC1E | TIM_CCER_CC1NE |TIM_CCER_CC2E | TIM_CCER_CC2NE); //
TIM1->DIER = TIM_DIER_UDE;
TIM1->CCR1 = 0;
TIM1->CCR2 = 0;
TIM1->ARR = 8-1;
TIM1->PSC = 180-1; //50kHz
TIM1->EGR = TIM_EGR_UG;
TIM1->BDTR |= TIM_BDTR_MOE;
TIM1->DCR = ((uint16_t)0x010D); //
// TIM4 KeyDelay
TIM4->PSC = 7200-1; // 0.5ms
TIM4->ARR = 5000-1; //
TIM4->EGR = TIM_EGR_UG;
DMA1_Channel5->CCR = 0;
DMA1_Channel5->CPAR = ((uint32_t)&(TIM1->DMAR));
DMA1_Channel5->CMAR = ((uint32_t)&buf[0]);
DMA1_Channel5->CNDTR = (4*(32+4))*2;
DMA1_Channel5->CCR = DMA_CCR5_CIRC|DMA_CCR5_MINC|DMA_CCR5_PSIZE_0|DMA_CCR5_MSIZE_0|
DMA_CCR5_PL|DMA_CCR5_DIR|DMA_CCR5_TCIE|DMA_CCR5_HTIE);
DMA1->IFCR = ((uint32_t)0x0FFFFFFF); // Clears all flags
uint32_t data0,data1,data2,data3;
uint8_t a=0x80;
uint32_t b=0;
uint32_t c=1;
uint32_t d=3;
DMA1_Channel5->CCR |= DMA_CCR5_EN;
TIM1->CR1 |= TIM_CR1_CEN;
uint32_t sp=4; //50kHz
while (1) {
data0=(0x80|((c<<=1)<<8)); // 01
data1=(0x40|((b++)<<8)); // 02
data2=(0x20|((d<<=1)<<8)); // 04
data3=(0b10101010101010101010101001010101); // AA
while (!(DMA1->ISR&DMA_ISR_HTIF5)) { ;}
W2Buf(data0,data1,Abuf1);
(a==1)?(a=0x80):(a>>=1);
if (c==0) c=1;
if (d==0) d=3;
if (!(TIM4->CR1&TIM_CR1_CEN)) {
if (!(GPIOB->IDR & K2)) {
sp++;
if (sp==15) sp=0;
TIM1->CR1 = 0;
TIM1->ARR = 8-1;
switch(sp) {
case 0: TIM1->PSC = 818-1; break; //11kHz
case 1: TIM1->PSC = 750-1; break; //12kHz
case 2: TIM1->PSC = 620-1; break; //14.5kHz
case 3: TIM1->PSC = 188-1; break; //48kHz
case 4: TIM1->PSC = 180-1; break; //50kHz
case 5: TIM1->PSC = 91-1; break; //99kHz
case 6: TIM1->PSC = 90-1; break; //100kHz
case 7: TIM1->PSC = 36-1; break; //250kHz
case 8: TIM1->PSC = 35-1; break; //257kHz
case 9: TIM1->PSC = 19-1; break; //473kHz
case 10: TIM1->PSC = 18-1; break; //500kHz
case 11: TIM1->PSC = 10-1; TIM1->ARR = 9-1; break; //800kHz
case 12: TIM1->PSC = 11-1; break; //818kHz
case 13: TIM1->PSC = 9-1; break; //1000kHz
case 14: TIM1->PSC = 8-1; break; //1125kHz
}
TIM1->EGR = TIM_EGR_UG;
TIM1->CR1 |= TIM_CR1_CEN;
TIM4->CR1 |= TIM_CR1_CEN|TIM_CR1_OPM;
} // key pressed
} // time key
while (!(DMA1->ISR&DMA_ISR_TCIF5)) {;}
DMA1->IFCR = DMA_IFCR_CGIF5;
W2Buf(data2,data3,Abuf2);
} // end while
} // END main
void W2Buf(uint32_t w1,uint32_t w2,uint32_t Abuf) {
uint32_t y=0x0004000F; //
uint32_t n=0x00040000;
uint32_t z=0; //
uint32_t *p = (uint32_t*)&buf[Abuf];
for (uint32_t i=0;i<32;i++) {(w1&1)?(*p=y):(*p=n); w1>>=1; p++;}
for (uint32_t i=0;i<4; i++) {*p=z; p++;}
for (uint32_t i=0;i<32;i++) {(w2&1)?(*p=y):(*p=n); w2>>=1; p++;}
for (uint32_t i=0;i<4; i++) {*p=z; p++;}
}
Пн авг 08, 2022 07:23:14
Пн авг 08, 2022 08:30:54
Пн авг 08, 2022 18:58:59
Ср авг 10, 2022 15:38:32
Пт авг 12, 2022 15:51:16
Пт авг 12, 2022 16:59:29
Ср авг 17, 2022 17:18:13
Ср авг 17, 2022 21:20:49
for(int bit = 0; bit < 7; bit++)
{
if(((byte >> bit) & 0x03) < 0x2)
change[bit] = FALSE;
else
change[bit] = TRUE;
}
Чт авг 18, 2022 10:18:41
Чт авг 18, 2022 16:22:49
Чт авг 18, 2022 18:46:36