1. Datasheet

Datasheet contains all the function of a chip. For the ATTiny44, its datasheet includes all the features about itself. My experience to read a datasheet is to focus on the first page of it.

If you want to build a system and don't know which MCU to use, first page of the datasheet tells about all the features you want to know. How many bits it has, is it a low power chicp, which architecture it contains, how many IOs it has and so on.
As we can learn from the datasheet, ATtiny44 is a low power 8-bit Microcontroller. It has 4K bytes of In-System, Self-programmable Flash Program Memory, 256 Bytes of In-System Programmable EEPROM and 256 Bytes of Internal SRAM. Two Timers with two PWM channels. A 10-bit ADC with 8 Single-ended Channels and 12 Differential ADC Channel Pairs with Programmable Gain.
Operating volage is 1.8-5.5V which means it can work with one battery. And power-down mode only use 0.1uA current which means it can be used in many portable devices.
Here is the Pinout of the chip.

As we use the SOIC, let's pay attention to the SOIC. There are eight PAs and four PBs. The function of each pin is list in the parenthesis.

2. Program

I use the FABISP I made two weeks ago to burn the chip.

And here is my board with a button and an LED. I will program to use the button to set the time slot of LED blinking. The longer your push the button, the longer the led blinking.

Here is my board.
I have some experience about avr programing, so i started programing from zero.
First of all is the include part. There are three files: io.h for the input and output, delay.h for the basic delay and pqmspace.h for some registers.

Then comes the define part. We define Led and Button here.

We need a function to define the time slot.

In the main part of the program, we need to set the clock first. Pin need to initialize too because there are some difference between input and output.

Then comes the most important part. In the main loop we need to check if the button is pushed. If not, keep blinking. If is, check how long the pushing is and set the delay time.

Here is my c file. blink.c and make file .

The little game board finally worked. I am working on it to update it into a counting game, which can count who can push the button at 1 second exactly. It's pretty hard.