输出的视频转换成MP4后里面的内容没有了,是什么原因呢?
724
2022-05-30
#include "STC15W4K.H" // 包含STC15W4K寄存器定义文件 void main() { //初值计算方法为:步长值=计数脉冲频率/(2*所需频率) // (22118400/12)/(2*10000) = 92.16 = 0x005C CCAP0L=0x5C; // 给PCA模块0的CCAP0L置初值 10khz CCAP0H=0; // 给PCA模块0的CCAP0H 置初值 CCAPM0=0x4D; // 设置PCA模块0为时钟输出模式。 EA=1; // 开总中断 CR=1; // 启动定时器 while(1); // 等待中断 } void PCA() interrupt 7 { unsigned int temp; // 临时变量 temp=(CCAP0H<<8)+CCAP0L+0x5C; // 运算符“+”的优先级大于“<<” //这里要注意类型提升,相同数据类型此处1个字节进行运算后,提升为2字节再运算 CCAP0L=temp; // 取计算结果的低8位 CCAP0H=temp>>8; // 取计算结果的高8位 CCF0 = 0; // 清PCA模块0中断标志 }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
以下提供移植更方便的成熟程序
#include "STC15W4K.H" // 包含STC15W4K寄存器定义文件 #define SYSclk 22118400L #define T100KHz ((SYSclk/2)/2/100000) unsigned int value; // 临时存放比较寄存器增加的数值 sbit PCA_LED = P0^0; // PCA测试LED void port_mode() // 端口模式 { P0M1=0x00; P0M0=0x00;P1M1=0x00; P1M0=0x00;P2M1=0x00; P2M0=0x00;P3M1=0x00; P3M0=0x00; P4M1=0x00; P4M0=0x00;P5M1=0x00; P5M0=0x00;P6M1=0x00; P6M0=0x00;P7M1=0x00; P7M0=0x00; } void main() { port_mode(); // 所有IO口设为准双向弱上拉方式。 CMOD = 0x82; // CIDL=1,空闲模式下停止PCA计数器工作,PCA时钟源为Fosc/2 // ECF=0,禁止PCA定时器溢出中断 CCON = 0; // 清零PCA计数器溢出中断请求标志位CF // CR = 0, 不允许 PCA 计数器计数,清零PCA 各模块中断请求标志位CCFn CL = 0; // 清零PCA 计数器 CH = 0; value = T100KHz; CCAP1L=value; // 给PCA模块1的CCAP1L置初值 CCAP1H=value >> 8; // 给PCA模块1的CCAP1H 置初值 CCAPM1=0x4D; // PCA模块1为时钟输出模式,且必须使用中断。 // ECCF1=1允许PCA模块1中断 // 当[CH,CL]=[CCAP1H,CCAP1L]时,CCF1=1,产生中断请求,重装比较值。 EA=1; // 开整个单片机所有中断共享的总中断控制位 CR=1; // 启动PCA计数器(CH,CL)计数 while(1); // 等待中断 } void PCA() interrupt 7 { CCF1 = 0; // 清中断标志 value += T100KHz; CCAP1L = value; CCAP1H = value >> 8; // 更新比较值 }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
单片机
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。