スキップしてメイン コンテンツに移動

変なところがやけに詳しくなるなあ ATmega128-16AU Arduino化でいじった。

ピンアサインが足らなくて全部で31本しか認識してなかったので、出来るかな?でキーアサインのcore部を書き足してしまった。PAから後ろを書き足した。
元は、ATmega1280用だったらしい。・・・PGのラインはいい加減だが、PFから時計回りになるようにしてみた。

ちょっと書き直すと変化するって言う意味で、Arduinoはかなり楽しい。

抜き打ち検査的に、Lチカで、51番まで数値道理に動くのは確認した。(抜き打ちなのでミスは有るかも)

あんまりピン数が多くて、ピン表をピンサイドに貼らないと訳解らなくなりそうだ。64ピンのATmega128-16AUの全ピン対応出来たみたい。

頭から順番に数えた、配列式にポートのA−Gと、マスク番号を並べるって、書く方としては解りにくい。PORTB0 DDRB PINB0 とか並べて書く方が書いてて解かり安いとは思う。

裏手は面倒臭く、表は凄く簡単に・・・Arduinoの思想みたいなのを感じはする。

凄く面倒な事を我慢すれば、私の千鳥型ピン配列のATmega128-16AUの外側に一列ずつ番号順に並べるなんてのも出来る。

そう考えると、他の言語みたいに、ポート8個で、1バイトの配列と考えて、そこにパルスを送って表示するとか言うのは苦手そうに見える。
パルスモーター駆動とかで、4ビットx16個とかの配列を作って、ポートに順番に入れてくってのは、普通にやる事だが・・・そうゆう部分は、ライブラリに全部隠蔽するって言う構造なんだろうな。なるほどとか思う。



/*
  pins_arduino.c - pin definitions for the Arduino board
  Part of Arduino / Wiring Lite

  Copyright (c) 2005 David A. Mellis

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General
  Public License along with this library; if not, write to the
  Free Software Foundation, Inc., 59 Temple Place, Suite 330,
  Boston, MA  02111-1307  USA

  $Id: pins_arduino.c 804 2009-12-18 16:05:52Z dmellis $
*/

#ifndef _AVR_IO_H_
#include <avr/io.h>
#endif
//#include "wiring_private.h"
#ifndef Wiring_h
#include "wiring.h"
#endif
#ifndef Pins_Arduino_h
#include "pins_arduino.h"
#endif


#ifndef PA
#define PA 1
#define PB 2
#define PC 3
#define PD 4
#define PE 5
#define PF 6
#define PG 7
#define PH 8
#define PJ 10
#define PK 11
#define PL 12
#endif


// these arrays map port names (e.g. port B) to the
// appropriate addresses for various functions (e.g. reading
// and writing)

//__AVR_ATmega128__
const uint16_t PROGMEM port_to_mode_PGM[] = {
NOT_A_PORT,
&DDRA,
&DDRB,
&DDRC,
&DDRD,
&DDRE,
&DDRF,
&DDRG,
NOT_A_PORT,
};

const uint16_t PROGMEM port_to_output_PGM[] = {
NOT_A_PORT,
&PORTA,
&PORTB,
&PORTC,
&PORTD,
&PORTE,
&PORTF,
&PORTG,
};

const uint16_t PROGMEM port_to_input_PGM[] = {
NOT_A_PIN,
&PINA,
&PINB,
&PINC,
&PIND,
&PINE,
&PINF,
&PING,
};

const uint8_t PROGMEM digital_pin_to_port_PGM[] = {
// PORTLIST
//-------------------------------------------
// ALE ** Physical pin 1 ** 
// NC ** Physical pin 2 ** 
PD, // PD 7 ** logical pin 0 Physical pin 3 ** /T2
PD, // PD 6 ** logical pin 1 Physical pin 4 ** T1
PD, // PD 5 ** logical pin 2 Physical pin 5 ** XCK1
PD, // PD 4 ** logical pin 3 Physical pin 6 ** ICP1
PD, // PD 3 ** logical pin 4 Physical pin 7 ** TXD1
PD, // PD 2 ** logical pin 5 Physical pin 8 ** RXD1
PD, // PD 1 ** logical pin 6 Physical pin 9 ** SDA
PD, // PD 0 ** logical pin 7 Physical pin 10 ** SCL

PB, // PB 7 ** logical pin 8 Physical pin 11 ** 
PB, // PB 6 ** logical pin 9 Physical pin 12 ** 
PB, // PB 5 ** logical pin 10 Physical pin 13 ** 
PB, // PB 4 ** logical pin 11 Physical pin 14 ** 
PB, // PB 3 ** logical pin 12 Physical pin 15 ** 
PB, // PB 2 ** logical pin 13 Physical pin 16 ** 
PB, // PB 1 ** logical pin 14 Physical pin 17 ** 
PB, // PB 1 ** logical pin 15 Physical pin 18 ** 

PE, // PE 7 ** logical pin 16 Physical pin 19 ** 
PE, // PE 6 ** logical pin 17 Physical pin 20 ** 
PE, // PE 5 ** logical pin 18 Physical pin 21 ** 
PE, // PE 4 ** logical pin 19 Physical pin 22 ** 
PE, // PE 3 ** logical pin 20 Physical pin 23 ** 
PE, // PE 2 ** logical pin 21 Physical pin 24 ** 
PE, // PE 1 ** logical pin 22 Physical pin 25 ** 
PE, // PE 0 ** logical pin 23 Physical pin 26 ** 

PF, // PF 0 ** logical pin 24 ** ANALOG 1
PF, // PF 1 ** logical pin 25 ** ANALOG 2
PF, // PF 2 ** logical pin 26 ** ANALOG 3
PF, // PF 3 ** logical pin 27 ** ANALOG 4
PF, // PF 4 ** logical pin 28 ** ANALOG 5
PF, // PF 5 ** logical pin 29 ** ANALOG 6
PF, // PF 6 ** logical pin 30 ** ANALOG 7
PF, // PF 7 ** logical pin 31 ** ANALOG 8
PA, // PF 0 ** logical pin 32 
PA, // PF 1 ** logical pin 33   
PA, // PF 2 ** logical pin 34   
PA, // PF 3 ** logical pin 35  
PA, // PF 4 ** logical pin 36   
PA, // PF 5 ** logical pin 37   
PA, // PF 6 ** logical pin 38   
PA, // PF 7 ** logical pin 39
PC, // PC 7 ** logical pin 40
PC, // PC 6 ** logical pin 41   
PC, // PC 5 ** logical pin 42   
PC, // PC 4 ** logical pin 43  
PC, // PC 3 ** logical pin 44   
PC, // PC 2 ** logical pin 45   
PC, // PC 1 ** logical pin 46   
PC, // PC 0 ** logical pin 47   

PG, // PG 3 ** logical pin 48  
PG, // PG 4 ** logical pin 49   
PG, // PG 0 ** logical pin 50   
PG, // PG 1 ** logical pin 51   
PG, // PG 2 ** logical pin 52 
};
//_BOARD_AMBER128_
const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = {
// PIN IN PORT
// -------------------------------------------
_BV( 7 ) , // PD 
_BV( 6 ) , // PD 
_BV( 5 ) , // PD 
_BV( 4 ) , // PD 
_BV( 3 ) , // PD 
_BV( 2 ) , // PD 
_BV( 1 ) , // PD 
_BV( 0 ) , // PD 

_BV( 7 ) , // PD 
_BV( 6 ) , // PD 
_BV( 5 ) , // PD 
_BV( 4 ) , // PD 
_BV( 3 ) , // PD 
_BV( 2 ) , // PD 
_BV( 1 ) , // PD 
_BV( 0 ) , // PD 

_BV( 7 ) , // PD 
_BV( 6 ) , // PD 
_BV( 5 ) , // PD 
_BV( 4 ) , // PD 
_BV( 3 ) , // PD 
_BV( 2 ) , // PD 
_BV( 1 ) , // PD 
_BV( 0 ) , // PD 

_BV( 0 ) , // PF 
_BV( 1 ) , // PF 
_BV( 2 ) , // PF 
_BV( 3 ) , // PF 
_BV( 4 ) , // PF 
_BV( 5 ) , // PF 
_BV( 6 ) , // PF 
_BV( 7 ) , // PF
_BV( 0 ) , // PA
_BV( 1 ) , // PA 
_BV( 2 ) , // PA 
_BV( 3 ) , // PA 
_BV( 4 ) , // PA 
_BV( 5 ) , // PA 
_BV( 6 ) , // PA 
_BV( 7 ) , // PA
_BV( 7 ) , // PC
_BV( 6 ) , // PC
_BV( 5 ) , // PC
_BV( 4 ) , // PC
_BV( 3 ) , // PC
_BV( 2 ) , // PC
_BV( 1 ) , // PC
_BV( 0 ) , // PC
_BV( 3 ) , // PG
_BV( 4 ) , // PG
_BV( 0 ) , // PG
_BV( 1 ) , // PG
_BV( 2 ) , // PG
};

const uint8_t PROGMEM digital_pin_to_timer_PGM[] = {
// TIMERS
// -------------------------------------------
NOT_ON_TIMER, // PD 7 ** 0 ** /T2
NOT_ON_TIMER , // PD 6 ** 1 ** T1
NOT_ON_TIMER , // PD 5 ** 2 ** XCK1
NOT_ON_TIMER , // PD 4 ** 3 ** ICP1
NOT_ON_TIMER , // PD 3 ** 4 ** TXD1
NOT_ON_TIMER , // PD 2 ** 5 ** RXD1
NOT_ON_TIMER , // PD 1 ** 6 ** SDA
NOT_ON_TIMER , // PD 0 ** 7 ** SCL

TIMER2 , // PB 7 ** 8 ** OK
TIMER1B , // PB 6 ** 9 ** OK
TIMER1A , // PB 5 ** 10 ** OK
TIMER0A , // PB 4 ** 11 ** not working
NOT_ON_TIMER , // PB 3 ** 12 ** 
NOT_ON_TIMER , // PB 2 ** 13 ** 
NOT_ON_TIMER , // PB 1 ** 14 ** 
NOT_ON_TIMER , // PB 0 ** 15 ** 

NOT_ON_TIMER , // PE 7 ** 16 ** 
NOT_ON_TIMER , // PE 6 ** 17 ** 
TIMER3C , // PE 5 ** 18 ** OK
TIMER3B , // PE 4 ** 19 ** OK
TIMER3A , // PE 3 ** 20 ** OK
NOT_ON_TIMER , // PE 2 ** 21 ** 
NOT_ON_TIMER , // PE 1 ** 22 ** 
NOT_ON_TIMER , // PE 0 ** 23 ** 

NOT_ON_TIMER , // PF 0 ** 24 ** ANALOG 0
NOT_ON_TIMER , // PF 1 ** 25 ** ANALOG 1
NOT_ON_TIMER , // PF 2 ** 26 ** ANALOG 2
NOT_ON_TIMER , // PF 3 ** 27 ** ANALOG 3
NOT_ON_TIMER , // PF 4 ** 28 ** ANALOG 4
NOT_ON_TIMER , // PF 5 ** 29 ** ANALOG 5
NOT_ON_TIMER , // PF 6 ** 30 ** ANALOG 6
NOT_ON_TIMER , // PF 7 ** 31 ** ANALOG 7
NOT_ON_TIMER , // PA 0 ** 32
NOT_ON_TIMER , // PA 1 ** 33
NOT_ON_TIMER , // PA 2 ** 34
NOT_ON_TIMER , // PA 3 ** 35
NOT_ON_TIMER , // PA 4 ** 36
NOT_ON_TIMER , // PA 5 ** 37
NOT_ON_TIMER , // PA 6 ** 38
NOT_ON_TIMER , // PA 7 ** 39
NOT_ON_TIMER , // PC 7 ** 40
NOT_ON_TIMER , // PC 6 ** 41
NOT_ON_TIMER , // PC 5 ** 42
NOT_ON_TIMER , // PC 4 ** 43
NOT_ON_TIMER , // PC 3 ** 44
NOT_ON_TIMER , // PC 2 ** 45
NOT_ON_TIMER , // PC 1 ** 46
NOT_ON_TIMER , // PC 0 ** 47
NOT_ON_TIMER , // PG 4 ** 48
NOT_ON_TIMER , // PG 3 ** 49
NOT_ON_TIMER , // PG 0 ** 50
NOT_ON_TIMER , // PG 1 ** 51
NOT_ON_TIMER , // PG 2 ** 52
};

コメント

このブログの人気の投稿

楽天 不正利用の顛末

楽天から届いたポイントメール 事の起こりはこのメールからだった・ 「へえ、俺楽天に、1500ポイントばかり有るけど、これって、1500円って事?」とTwitter仲間に話して、「そうだよ、ずいぶん買い物したねー」と言われて気付いた・・私は少なくともここ2年以上、楽天なんか使って無い! パスワードさえ本人が忘れてるような楽天のポイントが増えるのはおかしい。 パスワードをリセットして、初めて、「楽天ポイントの確認」なんかに入ってみた。 「えーっとたしか5年くらい前にVoIPの部品買った記憶はある」 確かにそれは存在したただし、合計1万円にも満たない・・ 「楽天って豪気だなー、ポイント一割もくれるのかー」と思ったが、全部を確認すると・・全くいわれの無い買い物がそこに有った。 何この14万のオーディオらしき物って! 僕は実際、楽天にポイントが有る事さえすっかり忘れていたし、どーでも良い会社だった。 これは何・・楽天に登録されてる僕のカードはこの時点で確実に失効してるので、僕のカード支払いでは無いし、こんな請求が来た事は無い。 2011/6/30 知人に聞くと、「楽天の店って、ノルマ高いから良く有る」との事・・こうやって、ほとんど休止してるアカウント悪用してる可能性が高いのだ。 こんなのが横行してたら、楽天の売り上げ高なんか、イカサマでいくらでも作れる事になる。 そしてまず、楽天のヘルプから苦情を投稿し、頭に来たので、三木谷氏のツイッターに送信した。 https://twitter.com/#!/hmiKitani Twitterの方が早く 楽天市場CS @ RakutenIchibaCS と名乗るとこから・・ 「 楽天市場お客様窓口担当です。この度はご心配をおかけいたしまして申し訳ございません。現在のところ、弊社から情報が漏洩したという事実はございませんが、お客様の現状を確認し、別途サポート担当より連絡をさせていただきます。今しばらくお待ち下さい。」 と来て 「なんで、公式のメールの方は帰って来ないのかと返信したら」 楽天市場CS  @ RakutenIchibaCS 「楽天市場お客様窓口担当です。この度はサポートセンターからの回答が遅れ、申し訳ございません。先ほど、ご質問の件に関しまして返信をいたしましたので今一度ご

計画停電が来ました。

色々やろうとしてた割には間に合わず・・ MacBookは余裕で生きてました。PocketWifiを探したんですが見つからす・・テーブルスタンドが、LEDの電池共用だったので、真っ暗ににもなりませんでしたが・・ 暗くてなんかやる気も出ないので、寝床でひっくり返って、MacBook動かしてました。 LEDスタンドが、外部USBバッテリーで余裕で、保ってくれたのも有り・・(それが切れてもまだ内蔵が単四電池3本がある) もう一個か二個くらい、照明用のLEDが有れば耐えられそう。 そんなのも有って、定電流回路ちょっと作ろうかと資料漁ったらいいのがあった。 これ 。 一ヶ月位続くって言うから秋月から、3WのLEDを数発買うかなーー とりあえず、家に転がってた、バイクのバッテリーと、MacBookの電源、携帯電話用ポータブル電源とかで、とうぶん毎日1回3時間程度点灯すればいいのかーー 理想的には、LED位なら、スーパーキャパシタが理想ですよねーー PEKE PROJECTは、とりあえず、1週間ほど、休止して、ATtiny85のブートローダーを作り・・Arduinoベースで、停電認識、通電時PWMでの充電機能、LEDの、省エネPWM点灯とかを、ちょっと研究しとこうと思ってます。

秋月の低ハイト、ピンソケット

最初どうかなーー抜けやすかったら嫌だなあと思ったが、さすがにそうならない努力してあるらしく、パチンと言う感じではまる。長いソケットが、刺さる感じなのにこれは、はまる感じなのだ。 ソケットはともかくピン側は結構扱いに困る・・このままブレッドボーボードには刺さらない。丸ピンにも刺さらないから、相手に出来るのは、専用のソケットだけになる。 ただ、いいなあと思ってるのは、これをISPにすると、パチンとはまる事と、ピン側の高さが制限されて、AVRや、PICの基板に無骨に突っ立っていた、ISPコネクタのハイト下げられる。 低ピン→ブレッドボード × 低ピン→標準ピンソケット × 低ソケット→低ピン ○ (ピンはこれ以外の組み合わせを確認できていない) 低ソケット→標準ピン ○ 低ソケット→細ピン ?? 低ソケット→丸ピン × と言う関係なので、ISPには使える。古いISPコネクタと併用出来るから、ソケットにはいいのだ・(はみ出るけど) ISPのハイトが下がると、基板全体が薄くなる可能性が、SMDとかにある。・・薄くするためにDIP ICをソケット無しで、直接半田付けしちゃう私なんかも・・このハイトは助かる。