如何让RedFlag出声?

博主分享了自己尝试在老旧的Compaq Presario X1000笔记本上安装RedFlag Linux并配置声卡的经历。回忆起初学电脑时使用DOS系统的情景,并对比了Windows与Linux系统的用户体验。

这两天晚上都比较安静,因为昨天我在电脑上装了个RedFlag,但是声卡却怎么也装不好,我对linux不熟悉,折腾了几次都搞不定。不过这样也好,正好让耳根清静一下,好好地思考思考人生……

记得最开始接触电脑是在学校,那时候电脑可是个宝贝东西,空调是必须的装备,进机房都得换鞋。电脑好像是绿色屏幕的苹果机,运行的是DOS操作系统,这个印象觉得有些奇怪,但记忆确实是这样的。先学的编程语言是basic,做练习的时候都是在纸上把程序写好,然后等着每周一次的上机去调试这些程序,能得到结果是很有成就感。后来,学习DOS,老师把它说的很神秘,弄的我当时也是一头雾水,从心理上就害怕了,一见DOS就油然而生恐惧。再后来,学习dbase,foxbase,这些东西都有一个特点就是全靠敲字符,容易让外人产神秘感,大家会觉得你很厉害。

当然,这是linux带给我的自然联想。windows的易用性是勿用置疑的,这也是它成功的原因,而复杂的操作甚至需要输入命令还很难达成目的,这当然也很难让用户接受。作为服务器系统,因为有专业人士维护,即使复杂点也没有问题。但作为普通用户使用的桌面系统,从我个人不完全的感受来看,应该还有许多路要走。

这里面又出现一个免费与收费的问题。windows发展的动力,正是来源于利益的驱动。那linux的发展动力在哪里呢?有人说开源的精神,但精神能当饭吃吗?当然不能。所以,linux的发展动力也来源于利益。

因为对于linux的认识还非常简单,就不敢展开多说了,还是回到标题,如何让redflag发声?我的电脑是很老的compaq presario x1000,如果有高手看到请指点一二,多谢。

我在Keil uVision5中编译C程序:#include <reg52.h> #include <intrins.h> // ??????? sbit MAIN_RED = P2^0; sbit MAIN_YELLOW = P2^1; sbit MAIN_GREEN = P2^2; sbit COUNTRY_RED = P2^5; sbit COUNTRY_YELLOW = P2^6; sbit COUNTRY_GREEN = P2^7; // ???????? sbit TRIG_MAIN = P1^3; // ???Trig sbit ECHO_MAIN = P1^4; // ???Echo sbit TRIG_COUNTRY = P2^3;// ????Trig sbit ECHO_COUNTRY = P2^4;// ????Echo // ???? bit main_car = 0; // ??????? bit country_car = 0; // ???????? bit yellow_flag = 0; // ?????? unsigned int yellow_timer = 0; // ????? // ???????(???) bit DetectCar(sbit trig, sbit echo) { unsigned int timeout = 0; trig = 1; _nop_(); _nop_(); // 10us????? trig = 0; while(!echo && timeout++ < 1000); // ??????? if (timeout >= 1000) return 0; // ???? // ????:???????? return 1; } // ???0??? void Timer0_Init() { TMOD |= 0x01; // ??1(16????) TH0 = 0x3C; // 50ms???? TL0 = 0xB0; ET0 = 1; // ?????0?? EA = 1; // ?????? TR0 = 1; // ????? } // ?????? void Lights_Init() { MAIN_GREEN = 1; // ????:????? MAIN_RED = MAIN_YELLOW = 0; COUNTRY_RED = 1; // ?????? COUNTRY_GREEN = COUNTRY_YELLOW = 0; } // ?????? void YellowTransition() { if (yellow_flag) { MAIN_GREEN = 0; MAIN_YELLOW = 1; // ????? if (yellow_timer >= 60) { // 3?(60 * 50ms) yellow_flag = 0; MAIN_YELLOW = 0; MAIN_RED = 1; COUNTRY_RED = 0; COUNTRY_GREEN = 1; // ???????? } } } // ????? void main() { Timer0_Init(); Lights_Init(); while(1) { // ????(???500ms) main_car = DetectCar(TRIG_MAIN, ECHO_MAIN); country_car = DetectCar(TRIG_COUNTRY, ECHO_COUNTRY); if (!yellow_flag) { if (country_car && main_car) { // ?????:??????? MAIN_GREEN = 1; COUNTRY_RED = 1; } else if (!country_car) { // ??????:??????? MAIN_GREEN = 1; COUNTRY_RED = 1; } else if (country_car && !main_car) { // ???????????? yellow_flag = 1; yellow_timer = 0; } } YellowTransition(); } } // ???0?????? void Timer0_ISR() interrupt 1 { TH0 = 0x3C; // ???? TL0 = 0xB0; yellow_timer++; // ?????? }输出以下内容Build target 'Target 1' compiling main.c... main.c(25): error C141: syntax error near 'sbit', expected 'bit' main.c(27): error C202: 'trig': undefined identifier main.c(29): error C202: 'trig': undefined identifier main.c(31): error C202: 'echo': undefined identifier Target not created. Build Time Elapsed: 00:00:00
05-23
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值