久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10759|回復: 18
打印 上一主題 下一主題
收起左側

使用excel制作的AVR寄存器配置助手---輕松搞定AVR

  [復制鏈接]
跳轉到指定樓層
樓主
  1. /***********************************************************
  2. -功能描述:開機初始化
  3. -參數說明:無
  4. -返回說明:無
  5. ***********************************************************/
  6. void Init_Start(void)
  7. {
  8.   ADC_InitTypeDef ADC_InitStruct;
  9.   
  10.   /*ADC配置*/
  11.   ADC_InitStruct.refSource = REF_INT;   //內部基準源
  12.   ADC_InitStruct.dataAlign = AD_LEFT;   //ADC數據為左對齊
  13.   ADC_InitStruct.channel   = 7;         
  14.   ADC_InitStruct.prescaler = CK_PS32;   //32預分頻
  15.   ADC_InitStruct.adcEnabled=1;          //使能ADC
  16.   ADC_Init(&ADC_InitStruct);
復制代碼

#ifndef _AVR_ADC_H
#define _AVR_ADC_H

#include "my_define.h"

#define ADC_PRECL(x)  st(ADCSR &= 0xf8;ADCSR |= (x);)
#define ADC_EN()      st(ADCSR |= BV(ADEN);)
#define ADC_CLOSE()   st(ADCSR &= ~BV(ADEN);)
#define ADC_START()   st(ADCSR |= BV(ADSC);)
#define ADC_END()     (ADCSR & BV(ADSC))

enum
{
  REF_EXT = 0,
  REF_VCC = 1,
  REF_INT = 3,
  
  AD_LEFT = 1,
  AD_RIGHT = 0,
  
  CONT_MOD = 1,
  ONCE_MOD = 0,
  
  CK_PS2   = 1,
  CK_PS4,
  CK_PS8,
  CK_PS16,
  CK_PS32,
  CK_PS64,
  CK_PS128,
};

typedef struct
{
  uint8 channel   : 4;
  uint8 def       : 1;
  uint8 dataAlign : 1;
  uint8 refSource : 2;
  
  uint8 prescaler : 3;
  uint8 adcIE     : 1;
  uint8 def1      : 1;
  uint8 convertMod: 1;
  uint8 start     : 1;
  uint8 adcEnabled: 1;
}ADC_InitTypeDef;


void ADC_Init(ADC_InitTypeDef *parameter);

#endif




這事情得從去年說起,去年學了AVR單片機后來又學了CC2530。當想用AVR做個項目時要使用定時器,突然感覺到頭腦一片空白,完全忘記如何配置定時器,看來只能查看手冊了。不知道是不是網速有像51助手一樣的軟件可以方便寄存器的配置,百度了下確實有。下載后才發現沒有定時器的初始化配置,最后還是把定時器功能和寄存器花時間看了一遍。這讓我很郁悶,萌發了自己寫一個配置軟件。我只學過VB,就打算用VB編寫一個。但是裝個VB又跟CAD沖突,真是煩人。之后想到了STM32庫函數的做法,就用ADC的初始化試下好不好用。做法如下:




使用過程中還是感覺到不明了。需要打開頭文件查看,而且配置的東西多。得再找辦法,突然想到excel可以用VBA,可以還是猶豫,現在很多人用的是wps,都沒有安裝VBA開發插件,如果分享給他人用就麻煩了。試著能不能只用公式就可以實現。折騰了一個晚上寫了一個USART的寄存器配置


使用效果和網站下載的單片機助手差不多,心血來潮就想把所有的外設模塊配置都寫出來。在這個過程中并不容易,特別是定時器的設置,T1的設置項比較麻煩,但我以根據自己的理解已經把T1和T2的設置選項做了分類。每個模塊寫出來后還要反復試驗測試看下每個設置項會不會有錯誤。對于一些配置非常簡單且不需要修改的模塊就沒必要做了,例如看門狗,EEPROM等。TWI也不打算做了,因為初始化不能主要是使用麻煩,很多狀態要處理。整個excel的設計花了將近二十天的時間,有很大部分時間是用來看手冊的和測試的。
        有了外設的初始化配置又開始在想能不能寫一個比較通用的模塊操作文件,可以重復使用就節省了很多時間。又忙碌了一個星期(特別是TWI花了我很大的精力,所以我并不喜歡AVR的TWI)。





這些模塊的操作代碼有些是在學習的時候寫的,只需做了整理,但是肯定是存在不足之處的,所以只作為入門學習的參考使用。下面還是具體介紹下是怎么使用的:







          假設使用的是我寫的模塊操作文件,這寫文件都是沒有初始化函數的。首先就需要用AVR配置工具生成初始化函數(建議新建一個C文件專門用于存放初始化函數)。打開“Atmega8a寄存器配置文件”,這個文件是參考m8a寫的所以就叫這個名字了。在文件的下方有八個工作表,第一個是幫助,里面是關于使用的說明。后面是外設的寄存器配置表格。單擊相應進行配置設置。




設置區中灰色打底的是可以選擇設置的,橙色打底的是一些重要的說明。小黑點打底的設置項是要求必須按順序依次設置。設置完后就可以選中代碼生成區中的代碼進行復制,執行復制后選擇區會出現螞蟻線。再粘貼到自己的C文件中即可。


注明:模塊的操作文件是在IAR的開發環境寫的,不是使用IAR的朋友需要自己更改下才能使用。Excel的寄存器配置文件可能有些開發平臺對于個別寄存器的命名會有所差異,可以通知我修改。


Atmega8a寄存器配置.zip (64.4 KB, 下載次數: 107)
模塊操作文件.zip (12.05 KB, 下載次數: 71)



評分

參與人數 2黑幣 +130 收起 理由
HI-XM + 30 很給力!
admin + 100 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏6 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發
ID:108060 發表于 2016-3-9 16:37 | 只看該作者
排序全部亂了,不知道是怎么回事
回復

使用道具 舉報

板凳
ID:108060 發表于 2016-3-10 08:33 | 只看該作者
http://www.zg4o1577.cn/bbs/dpj-45487-1.html

昨晚錄制了一個配置外部中斷、UASRT、ADC、定時器輸出PWM的視頻,感興趣的可以看下。
寫代碼的速度很慢,大家可以快進著看
回復

使用道具 舉報

地板
ID:55127 發表于 2016-3-10 13:43 | 只看該作者
下來學習下,謝謝!
回復

使用道具 舉報

5#
ID:1 發表于 2016-3-10 16:48 | 只看該作者
秉燭良宵 發表于 2016-3-9 16:37
排序全部亂了,不知道是怎么回事

謝謝分享黑幣已經奉上,附件里面有完整的程序吧
回復

使用道具 舉報

6#
ID:108060 發表于 2016-3-11 10:30 | 只看該作者
admin 發表于 2016-3-10 16:48
謝謝分享黑幣已經奉上,附件里面有完整的程序吧

附件里的外設操作函數都是完整的,而且TWI還是用中斷實現,發送和接收數據非常簡單,把TWI的二十幾個狀態全部化簡了,但是函數是有做處理的。
回復

使用道具 舉報

7#
ID:108060 發表于 2016-3-11 10:30 | 只看該作者
這幾天在考慮寫一個STM32的庫函數配置助手,也打算嘗試用excel實現,如果實在不行再換VB。有沒有感興趣的,可以一起來討論。AVR的配置文件好像沒有什么人下載,估計是玩AVR的人不多,發現很多初學者都是喜歡玩STC的偏多
回復

使用道具 舉報

8#
ID:45777 發表于 2016-4-1 17:57 | 只看該作者
學習學習,謝謝版主分享
回復

使用道具 舉報

9#
ID:63812 發表于 2017-3-17 22:31 | 只看該作者
這個非常好,有創意。
回復

使用道具 舉報

10#
ID:196705 發表于 2017-6-4 00:15 | 只看該作者
能放出單元格保護密碼嗎
回復

使用道具 舉報

11#
ID:210602 發表于 2017-6-12 21:00 來自手機 | 只看該作者
想學習,好東西
回復

使用道具 舉報

12#
ID:249981 發表于 2017-11-20 12:25 | 只看該作者
本帖最后由 davidchao 于 2017-11-21 13:01 編輯

樓主, 這個寄存器配置在Atmega16上是不是也是一樣的啊?
回復

使用道具 舉報

13#
ID:116688 發表于 2018-1-8 00:22 | 只看該作者
下來學習下,謝謝!
回復

使用道具 舉報

14#
ID:120111 發表于 2018-4-21 05:58 來自手機 | 只看該作者
秉燭良宵 發表于 2016-3-10 08:33
http://www.zg4o1577.cn/bbs/dpj-45487-1.html

昨晚錄制了一個配置外部中斷、UASRT、ADC、定時器輸出PWM的 ...

辛苦了,感謝樓主的無私奉獻
回復

使用道具 舉報

15#
ID:316468 發表于 2018-4-26 23:18 | 只看該作者
挺好,下來研究一下這個,excel的這些VBA功能還真不會用。
回復

使用道具 舉報

16#
ID:455220 發表于 2018-12-26 14:43 | 只看該作者
感謝樓主無私分享
回復

使用道具 舉報

17#
ID:223761 發表于 2019-1-6 21:44 | 只看該作者
非常好的資料,
回復

使用道具 舉報

18#
ID:114509 發表于 2019-1-30 11:40 | 只看該作者
秉燭良宵 發表于 2016-3-11 10:30
這幾天在考慮寫一個STM32的庫函數配置助手,也打算嘗試用excel實現,如果實在不行再換VB。有沒有感興趣的, ...

正在學習AVR
回復

使用道具 舉報

19#
ID:25103 發表于 2019-2-12 23:22 | 只看該作者

下來學習下,謝謝!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本激情视频在线播放 | 成年视频在线观看福利资源 | 夜夜久久| 欧美日在线| 精品日韩一区 | 国产高清精品一区二区三区 | 亚洲精品国产成人 | 81精品国产乱码久久久久久 | 国产视频黄色 | 在线观看精品视频网站 | 亚洲成人精品影院 | 美女二区| 精品一级毛片 | 999久久精品 | 二区国产 | 欧美一区二区三区免费电影 | 日韩欧美二区 | 欧美国产91 | 国产精品自产拍 | 精产国产伦理一二三区 | 亚洲国产精品suv | 国产一区二区三区四区hd | 国产成人精品免高潮在线观看 | 毛片免费观看视频 | 99精品视频一区二区三区 | 久久亚洲欧美日韩精品专区 | 国产精品无码久久久久 | 久在线视频播放免费视频 | 少妇性l交大片免费一 | 欧美中文字幕在线观看 | 国产九九精品 | 中文字幕一区二区三区四区 | 亚洲在线 | 中文字幕不卡在线88 | 日本人和亚洲人zjzjhd | 欧美在线成人影院 | 亚洲成人一级片 | 久久久国产精品 | 日本aaa视频 | www.中文字幕av| 99精品久久久国产一区二区三 |