欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 使用excel制作的AVR寄存器配置助手---輕松搞定AVR [打印本頁]

作者: 秉燭良宵    時間: 2016-3-9 16:36
標題: 使用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)




作者: 秉燭良宵    時間: 2016-3-9 16:37
排序全部亂了,不知道是怎么回事
作者: 秉燭良宵    時間: 2016-3-10 08:33
http://www.raoushi.com/bbs/dpj-45487-1.html

昨晚錄制了一個配置外部中斷、UASRT、ADC、定時器輸出PWM的視頻,感興趣的可以看下。
寫代碼的速度很慢,大家可以快進著看
作者: 5002281    時間: 2016-3-10 13:43
下來學習下,謝謝!
作者: admin    時間: 2016-3-10 16:48
秉燭良宵 發表于 2016-3-9 16:37
排序全部亂了,不知道是怎么回事

謝謝分享黑幣已經奉上,附件里面有完整的程序吧
作者: 秉燭良宵    時間: 2016-3-11 10:30
admin 發表于 2016-3-10 16:48
謝謝分享黑幣已經奉上,附件里面有完整的程序吧

附件里的外設操作函數都是完整的,而且TWI還是用中斷實現,發送和接收數據非常簡單,把TWI的二十幾個狀態全部化簡了,但是函數是有做處理的。
作者: 秉燭良宵    時間: 2016-3-11 10:30
這幾天在考慮寫一個STM32的庫函數配置助手,也打算嘗試用excel實現,如果實在不行再換VB。有沒有感興趣的,可以一起來討論。AVR的配置文件好像沒有什么人下載,估計是玩AVR的人不多,發現很多初學者都是喜歡玩STC的偏多
作者: hjh7912    時間: 2016-4-1 17:57
學習學習,謝謝版主分享
作者: yahan    時間: 2017-3-17 22:31
這個非常好,有創意。
作者: qq732357710    時間: 2017-6-4 00:15
能放出單元格保護密碼嗎
作者: heavens78    時間: 2017-6-12 21:00
想學習,好東西
作者: davidchao    時間: 2017-11-20 12:25
本帖最后由 davidchao 于 2017-11-21 13:01 編輯

樓主, 這個寄存器配置在Atmega16上是不是也是一樣的啊?
作者: xyeuuu    時間: 2018-1-8 00:22
下來學習下,謝謝!
作者: wanffee    時間: 2018-4-21 05:58
秉燭良宵 發表于 2016-3-10 08:33
http://www.raoushi.com/bbs/dpj-45487-1.html

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

辛苦了,感謝樓主的無私奉獻
作者: lucheng77    時間: 2018-4-26 23:18
挺好,下來研究一下這個,excel的這些VBA功能還真不會用。
作者: ttkkxx    時間: 2018-12-26 14:43
感謝樓主無私分享
作者: lanyue51hei    時間: 2019-1-6 21:44
非常好的資料,
作者: HI-XM    時間: 2019-1-30 11:40
秉燭良宵 發表于 2016-3-11 10:30
這幾天在考慮寫一個STM32的庫函數配置助手,也打算嘗試用excel實現,如果實在不行再換VB。有沒有感興趣的, ...

正在學習AVR
作者: huaishang    時間: 2019-2-12 23:22

下來學習下,謝謝!




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1