Author name: Dabinn

惡童當街

一部很難懂的片,看完還是不太瞭作者想要表達什麼,也許是太深又也許是太膚淺,我只能說……有特別。

分鏡、場景、人物動作都是超高水準,雖然心裏明白這年頭樣樣都搞電腦動畫,不過在成熟的技術加持下,也許可說是比阿基拉還要阿基拉了。

場景除了細膩以外也有獨特的氣氛,想要呈現的大概是日本舊都市混合一些雜亂的風格,不過可能因為日據時代對台灣都市的一些影響,我仿彿看到小時候的高雄市,有許多巨大、也有許多混亂及狹小,歡樂夾雜著龐大破舊機械的陰影,像是鹽埕區、像是大新百貨,又好像看到了已經被火紋身的白雪公主所住的鐘樓,以及大統百貨頂樓,夜晚的鐵絲網圍籬…。

Tekkon_kinkreet

山女壁女

最近在看日劇「山女壁女」(又叫:海咪咪vs飛機場、百貨雙姝),故事場景是百貨公司的包包專櫃(這有什麼好看的?),剛開始的時候還真的有點無聊,而且一直在胸部大小的話題上打轉(把小胸部演的很可憐),看的有點勉強。不過後面卻整個精采了起來….。

心得:
.愛瑪士小姐變正常人還是好可愛啊
.青森話講起來呼嚕呼嚕的也好可愛啊
.愛瑪士小姐講青森話真是可愛加可愛啊
.男人就是要當天才藝術家啊
.是男人就要會說法語啊 (?)

E-VA去A到

下午跟笨小郁去游泳,到游泳池要停車,只剩機械停車位

「小郁…幫我看一下右邊還剩多少」
「喔」看了看「大概還30公分吧」
30公分…那還很多,就繼續倒車吧

刷~~~~~側面就往旁邊的斜鐵桿犁下去了

心得:
.我開車技術真是爛啊
.小郁真是有笨啊
.以後千萬不要相信副駕啊
.還是車窗降下來自己看後照鏡比較保險啊
.EVA的倒車雷達真是超準的啊
.神奇海棉真是好好用啊
.E-VA好可憐啊

Procyon AVRlib

Procyon AVRlib
C-Language Function Library for Atmel AVR Processors

由Pascal Stang所寫,一套AVR開發專用,非常了不起的函式庫

AVRlib和之前提過的avr-libc名字很像,不過絕對是不同的東西
avr-libc是類似C標準函式庫
AVRLib則是提供了許多較高階的函式

有多了不起?
來看看他有那些功能:

WinAVR(AVR-GCC)的奇怪問題

(這篇是從舊文章整理出來的)

GCC在compile的時候可以用-o的參數來設定optimize的程度,可設為不作最佳化(-○0),或是-o1~3和-os幾種最佳化的等級。-o0的時候是不會有什麼問題啦,不過程式不作optimize的話塞不進Tiny2313裏面。所以程式才寫到大概一半大小的時候就開始用最佳化compile,然後就發現有個地方一直很奇怪…..。
來看一小段程式:

tmp = RRR / 5 - 3; // tmp型別為int,所以不會取到小數部份
if (tmp > 5) {
  AAA = 5;
} else if (tmp < 1) {
  AAA = 1;
} else if (((RRR % 5) * 10 / 5) > 4) { // 手動四捨五入
  AAA = tmp + 1;
}

這段程式主要是要把RRR轉換成AAA 1~5的數值。RRR正常是20~40,有時會超出這個範圍,所以用了兩個判斷式去限制住讓AAA不會爆掉,就這麼簡單而已。
然後…我發現不管RRR的數值是多少,他在第一個else if的地方程式執行時總認為tmp=0,所以,判斷式就成立,結果就是AAA永遠=1。
怪吧?更怪的是在如果第一個if前面先去判斷tmp的值來看看,他會告訴你tmp不等於0…。然後才過了兩行程式,tmp就變0了。
裏面所有的變數都是宣告為signed int,跟其它變數也都沒有衝突的問題。而且只要compile的時候不要作optimize,就一切正常,所以程式本身應該是沒問題的。

結果怎麼解?我把tmp拿掉就好了…直接寫成:

AAA = RRR / 5 - 3;
if (AAA > 5) {
  AAA = 5;
} else if (AAA < 1) {
  AAA = 0;
} else if (((RRR % 5) * 10 / 5) > 4) { // 手動四捨五入
  AAA++;
}

這樣跑起來就正常了(?),看來大概這compiler討厭我的tmp吧?好吧,不去管原因了,就先加減用。結果過沒兩天我改了程式的其它不相干的地方之後,他又壞了。
這次一樣壞在第一個else if的地方,他總認為AAA = 0…最後又讓AAA變成永遠=1。 (你那麼愛讓AAA=1嗎?)

我只好再換另一種寫法:

AAA = RRR / 5;
if (AAA > 8) {
  AAA = 8;
} else if (AAA < 4) {
  AAA = 4;
} else if (((RRR % 5) * 10 / 5) > 4) { // 手動四捨五入
  AAA++;
}
AAA -= 4

把減4的動作移到最後面再作,這樣就又好了….這什麼道理?

所以…
有遇到程式跑起來很奇怪的時候,試試看先把compile optimize設成-o0吧

Scroll to Top