MusicTools(音乐免费下载软件)是一款非常好用的绿色的音乐软件,这款软件能够很好的去帮助用户们寻找播放自己想要听的音频文件等,快来下载使用吧~
1、纯绿色软件,不用安装,使用方便;
2、支持网易云音乐和QQ音乐;
3、支持解析网易云音乐歌单和单曲的ID;
4、支持下载网易云音乐64k、128k、198k和320k码率的音乐;
5、支持搜索QQ音乐的歌名、mid和页面地址;
7、支持自定义下载路径。
1、先点击设置,设置下载路径;
3、如果是网易云音乐的话,选择歌单或者单曲,然后粘贴ID,设置码率,就可以获取音乐;
4、点击鼠标右键,就可以下载;
1.设置页面增加支持我们,感谢大家对我们的支持!
4.优化左侧创建的歌单/专辑功能
5.优化使用体验及修复已知BUG
}
各位大侠好,小弟学习使用ATMEGA128制作一个非常简单的MP3,编译环境是ICCAVR7.22,用AVR STUDIO JTAG烧录和调试。目前已经完成MP3基本的播放功能了,想开始做一个单界面的GUI。用户界面的图片数组不大,是176*220*16bit的数据,大约为75Kbyte,因此我想放在单片机内部。然而遇上了种种问题,描述如下:
一开始我直接声明了一个数组,然后报错:
经过查阅相关帖子之后我认为是因为单个文件的lit区域不能大于64K所致
为此,我将数据分成了176*110*16bit的两个数组(因为液晶屏填充数据的时候是行扫描,所以我就按行分割了),分别放在了两个c文件中,然后在GUI的头文件中声明如下:
在main函数中便正常调用了,编译通过,烧录之后发现图像在显示后一半时刚开始还是正常的,但是在越五分之一的位置开始有一行乱了,随后便是重新显示最开始的图像数据,而且平移了。
经过思考,我确认是因为16位寻址空间只能找到64K数据,而RAMPZ寄存器没有置1,所以Z指针在归零之后,并没有访问到高64K数据,而是错误地将代码误认为是图像数据显示了一会儿,然后因为接着就是上半部分的图像数据,所以重新开始显示上半部分的图像。由于不是从一行的第一个像素开始显示的,所以图像发生了平移。
我想,只要在Z寄存器归零的时候将RAMPZ置1就好了嘛,但是因为ICCAVR的声明中我没有找到Z寄存器,所以我仿照其声明对Z寄存器进行了声明:
然后在循环送数的语句中加上了判断语句,并在送数完成之后将RAMPZ归零:
这样做确实完成了图片显示的任务,但是根据我老师的问题倍增定律:“解决一个问题会出来十个问题”,确实带来了两个问题:
1、首先,我原来正常的MP3功能木有了,它不唱歌了 。为了解决这个问题,我在使用JTAG进行DEBUG时(请勿吐槽……串口调试我知道,只是这块板子的串口转USB芯片坏了……)发现在主程序在没有进入子程序,或者进入子程序之后返回时没有正常返回,而是跑飞了。
2、要求在ICCAVR中,两个图片数据文件的排列顺序不能反,反了之后我添加的那条指令就得跟着换到另外一次调用中去。而且最恐怖的是,将来怎么办?如果程序越变越大,到底那个64K的分界在哪里我怎么闹得清楚……这是多大的一个隐患……
我认为,首先这个问题估计还是跟RAMPZ有关,因为它影响着长跳转指令访问的是哪一页数据,是低64K还是高64k。其次,我不知道咋办……
后来我想能不能将接近64K的数据放在高64K的FLASH里,将剩下的一部分图像数据放在低64kFLASH的比较高的部分。为此我进行了尝试,想要使用ICCAVR的内部指令:
这个指令会将函数与全局数据不使用浮动定位(重定位)进行放置,而是从 <address>开始分配绝对地址,这在访问中断向量和其它硬件项目时特别有用,可不可以用在我的项目里呢?
不行……因为伦家是字节地址了啦,限制寻址空间只有64K字节了啦啦啦,伦家ICCAVR不能强制帮你把数据放到ATMEGA128的下半身的~
肿么会这样~最后一丝希望啊~
所以,我来了……求救&求教……
PS.这是一个学习型项目,老师想让我先不要考虑外置FLASH DATA存储器,看看能不能做出来,这样省钱啊……但是我深切地觉得,还是外部Data Flash芯片靠谱啊~而且ATMEGA128如何使用高64K的空间是个好神奇的课题啊~貌似ICCAVR7.22没有太支持这个玩意儿。
}