; ;******************************************************************************* ;* File Name :CA100_ATtiny13A RC内部クロックアジャスタ 被調整マイコン ;* CPU :ATtiny13A ;* NAME :KOG ;* Date :2020.05.30 ;* clock :内部RC ;* ;* ;* ;* ;******************************************************************************* ; ; ;OSCCALの範囲 0〜127 ; ;***** Specify Device ***** ; .include "tn13Adef.inc" ;ATtiny13A デバイスに応じて変更すること ; ; ;書き込み時のヒューズビットの設定 ;fuse 11111101 011010?? 0xFD 0x6A(9.6MHz時)/ 0xFD 0x69(4.8MHz時) ; |||||||| ||||||||_cksel0 internalRC (10:9.6MHz 01:4.8MHz) ; |||||||| |||||||__cksel1 External_clock 11 , 128kHz 11 ; |||||||| ||||||___sut0 internalRC : 10 ; |||||||| |||||____sut1 External_clock : 10 ; |||||||| ||||_____ckdiv8(0:クロックを1/8) ; |||||||| |||______wdton (1:WDTはWDTCSRで許可) ; |||||||| ||_______eesave (1:eepromは未保護) ; |||||||| |________spien (0:シリアルプログラミングを許可) ; |||||||| ; ||||||||__________rstdisbl (0:pb5-->port 1:pb5-->reset) ; |||||||___________bodlevel0 00:4.3V , 01:2.7V , 10:1.8V ; ||||||____________bodlevel1 11:BOD disable ; |||||_____________dwen (1:デバッグwireを禁止) ; ||||______________selfpgnen (1:自己プログラミング禁止) ; |||_______________1 ; ||________________1 ; |_________________1 ; ; ; ;書き込み時のロックビットの設定 ;Lock 11111111 0xFF ; ; ; ; ; ;プログラムはここからスタート init_port: ;ポートB0,B1を入力 、ポートB2を出力に設定しLowを出力しておくこと ldi r16,0b00000000 ;set portb out portb,r16 ldi r16,0b11111100 ;0:input 1:output set ddrb out ddrb,r16 ; ; main: ldi r17,8 ;set bit counter main2: sbis pinb,1 ;クロックの立ち上がりエッジ検出 rjmp main2 ; clc ;clear carry sbic pinb,0 sec ;set carry rol r16 ; main4: sbic pinb,1 ;クロックの立ち下がりエッジ検出 rjmp main4 ; dec r17 ;8回繰り返し brne main2 ; ; sts osccal,r16 ;set calbration data ,ATmega88 , ATmega168 etc out osccal,r16 ;set calbration data ATtiny13 , ATtiny45 , ATtiny44 , ATtiny2313 , ATtiny461 , ATmega16 etc ; ldi r16,100 ;周波数が安定するまで待つ main5: dec r16 brne main5 ; ldi r27,0x03 ;set 900 ldi r26,0x84 ; sbi portb,2 ;pulse rise main8: sbiw r27:r26,1 brne main8 ; cbi portb,2 ;pulse fall ; rjmp main ;