查看: 5586|回复: 19

大神帮我改改错

[复制链接]
  • TA的每日心情

    2013-5-17 10:39
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2013-5-16 08:46:46 | 显示全部楼层 |阅读模式
    分享到:
    刚开始学ISE中嵌入microblaze,对其编程不了解。是不是和标准的C编程一样,还是数据类型等有些差异?苦于没人指导,天天自己瞎琢磨。现在写了个程序,我估计肯定错误很多,求大神指导下。。。

    程序是:设计滤波器。fir_filter是fir滤波器。Window_Filter是用来得出滤波器的系数。最后是把滤波后的数据out用串口输出。
    #include "xparameters.h"

    #include "stdio.h"

    #include "xutil.h"
    #include "xgpio.h"
    #include "math.h"
    #define PI 3.1415926
    #define N 32768

    //====================================================
    void Delay(int Delay)
    {
            int i;
            for(i=0;i<Delay;i=i+1);
    }

    void fir_filter(long out[],long in[],long b[],unsigned int lenfilter,unsigned int length)
    {   
            for(int i=0;i<length;i++)out[i]=0.0;
            for(int i=0;i<length;i++){
                    for(int k=0;k<lenfilter;k++){
                            if (i+1-k>0) out[i]+=b[k]*in[i-k];
                    }
            }
    }

    void Window_Filter(long out[],long in[],unsigned long f1,unsigned long f2,unsigned long FS){
            unsigned int p=100;//p=M/2   M=200
            //unsigned int MM=201//MM=M+1;
            long H_R[201]={0};
            long HAN[201]={0};
            long H_HAN[201]={0};

            for(int i=0;i<=200;i++){
                    if(i!=p){
                    H_R[i]=(sin(2*PI*f2*(1.0/FS)*(i-p))-sin(2*PI*f1*(1.0/FS)*(i-p)))/(PI*(i-p));
                    }
                    else{
                            H_R[i]=2*(f2-f1)*(1.0/FS);
                    }
                    HAN[i]=0.5*(1-cos(2*PI*i/M));
                    H_HAN[i]=H_R[i]*HAN[i];
            }

             fir_filter(out,in,H_HAN,201,N);

    }
    int main (void) {
           
            unsigned long  f1=5000000;
            unsigned long  f2=6000000;
            unsigned long  FS=56000000;
            long out[32768]={0.0};
            long in[32768]={0.0};
           
            in[0]=1.0;
            Window_Filter(out,in,f1,f2,FS);
           
    XUartLite_Initialize (&RS232, XPAR_RS232_DEVICE_ID);
    for(int i=0;i<200;i++){
            XUartLite_Send (&RS232, &out[i], 201);
            Delay(1000);
    }

            return 0;
    }
    疑问:1.MB编程中是否支持double型和float型?2.sin函数的实现,直接加math.h能否实现? 3.对于自己写的程序是否正确在MB平台怎么仿真验证?4.求大神推荐学习MB的资料或书籍 5。MB编程和标准的C有哪些区别呢?6.串口是8位的,out是long int型的,XUartLite_Send (&RS232, &out[i], 201),这样写可以吗?应该怎么弄呢?

    求给路大神给予指导,小弟不胜感激!!!





    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-9-28 10:10
  • 签到天数: 1018 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2013-5-16 08:54:33 | 显示全部楼层
    楼主感觉程序在哪部分出错,麻烦在帖子中用明显的颜色标注下,方便大牛更有效率的帮你解决问题!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2014-7-16 09:10
  • 签到天数: 361 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2013-5-16 08:56:18 | 显示全部楼层
    整片代码,眼花缭乱的,看的晕乎
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2013-5-17 10:39
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2013-5-16 08:59:30 | 显示全部楼层
    xinxincaijq 发表于 2013-5-16 08:54
    楼主感觉程序在哪部分出错,麻烦在帖子中用明显的颜色标注下,方便大牛更有效率的帮你解决问题! ...

    刚开始学,不知道怎么验证,所以不知道哪里写的不对,我在疑问里写了我的疑惑。。。。求大神指导
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2013-5-17 10:39
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2013-5-16 09:01:23 | 显示全部楼层
    GY@艳 发表于 2013-5-16 08:56
    整片代码,眼花缭乱的,看的晕乎

    代码只有三个函数,函数的具体内容可以不用考虑的,我就是不知道MB编程中的数据类型等。就是想大神帮我改改错误。还有疑问我在最下面写了。。求大神指导
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2013-5-17 10:39
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2013-5-16 09:03:41 | 显示全部楼层
    xinxincaijq 发表于 2013-5-16 08:54
    楼主感觉程序在哪部分出错,麻烦在帖子中用明显的颜色标注下,方便大牛更有效率的帮你解决问题! ...

    对于MB的编程不了解,就是希望大神能看看我的程序,帮我改改错。。。。对于一些疑惑我在最下面写了。。。下次发帖我会注意的。。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2014-7-16 09:10
  • 签到天数: 361 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2013-5-16 09:28:18 | 显示全部楼层
    幽狼 发表于 2013-5-16 09:01
    代码只有三个函数,函数的具体内容可以不用考虑的,我就是不知道MB编程中的数据类型等。就是想大神帮我改 ...

    噢噢噢噢。看到了。不过抱歉呢,没用过。我帮你问问吧。希望有大牛能帮到你
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2013-5-17 10:39
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2013-5-16 09:29:37 | 显示全部楼层
    GY@艳 发表于 2013-5-16 09:28
    噢噢噢噢。看到了。不过抱歉呢,没用过。我帮你问问吧。希望有大牛能帮到你 ...

    嗯  非常感谢哦,版主人真好。。。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-12-1 09:28
  • 签到天数: 90 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2013-5-16 09:35:33 | 显示全部楼层
    想办法输出显示一下需要验证的数就行了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2013-5-17 10:39
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2013-5-16 10:03:20 | 显示全部楼层
    ??? 发表于 2013-5-16 09:35
    想办法输出显示一下需要验证的数就行了

    我是想从串口输出,但是具体不会做,大神能说详细点嘛?
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-5-14 13:54 , Processed in 0.192639 second(s), 32 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.