<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://www.marcelpost.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Mcu-notes-01</id>
	<title>Mcu-notes-01 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.marcelpost.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Mcu-notes-01"/>
	<link rel="alternate" type="text/html" href="https://www.marcelpost.com/wiki/index.php?title=Mcu-notes-01&amp;action=history"/>
	<updated>2026-05-17T04:18:10Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://www.marcelpost.com/wiki/index.php?title=Mcu-notes-01&amp;diff=1084&amp;oldid=prev</id>
		<title>Admin at 23:30, 24 November 2012</title>
		<link rel="alternate" type="text/html" href="https://www.marcelpost.com/wiki/index.php?title=Mcu-notes-01&amp;diff=1084&amp;oldid=prev"/>
		<updated>2012-11-24T23:30:30Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Presentation Notes for the Microcontroller Introduction at Westlakes Amateur Radio Club&lt;br /&gt;
&lt;br /&gt;
Data sheets&lt;br /&gt;
&lt;br /&gt;
* [[Datasheets]] Link to various datasheets&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hardware setup:&lt;br /&gt;
&lt;br /&gt;
* connection diagram&lt;br /&gt;
* batch/script files&lt;br /&gt;
* avrdude&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Avrdude program script&lt;br /&gt;
&lt;br /&gt;
* Windows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@echo off&lt;br /&gt;
&lt;br /&gt;
set PROJECT=blinkled&lt;br /&gt;
set SPEED=16000000UL&lt;br /&gt;
set PORT=\\.\USBSER000&lt;br /&gt;
set GCC_DEVICE=attiny85&lt;br /&gt;
set PGM_DEVICE=t85&lt;br /&gt;
set PGM_PROTO=avrispv2&lt;br /&gt;
set GCC_OPTIMISATION=-Os&lt;br /&gt;
set AVRTOOLS=C:\winavr-20100110\bin&lt;br /&gt;
&lt;br /&gt;
echo compile program&lt;br /&gt;
avr-gcc -g %GCC_OPTIMISATION% -Wall -mcall-prologues -DF_CPU=%SPEED% -mmcu=%GCC_DEVICE%   -c -o %PROJECT%.o %PROJECT%.c&lt;br /&gt;
&lt;br /&gt;
echo create object file&lt;br /&gt;
avr-gcc -g %GCC_OPTIMISATION% -Wall -mcall-prologues -DF_CPU=%SPEED% -mmcu=%GCC_DEVICE% %PROJECT%.o -o %PROJECT%.obj&lt;br /&gt;
&lt;br /&gt;
echo convert object file to hex file&lt;br /&gt;
avr-objcopy  -R .eeprom -O ihex %PROJECT%.obj %PROJECT%.hex&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
echo write program to chip&lt;br /&gt;
avrdude -F -c %PGM_PROTO% -P %PORT% -p %PGM_DEVICE% -U flash:w:%PROJECT%.hex  &lt;br /&gt;
&lt;br /&gt;
echo avr-list output:&lt;br /&gt;
echo ----------------&lt;br /&gt;
%AVRTOOLS%\avr-size -C --mcu=%GCC_DEVICE%  %PROJECT%.obj &amp;gt; %PROJECT%_avr-size.txt&lt;br /&gt;
&lt;br /&gt;
type %PROJECT%_avr-size.txt&lt;br /&gt;
&lt;br /&gt;
pause&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Linux&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Demo Programs for the ATtiny85:&lt;br /&gt;
&lt;br /&gt;
* Blink led &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
&lt;br /&gt;
  Demo program: blinkled.c&lt;br /&gt;
&lt;br /&gt;
  This program continously loops, bringing PB4 high and low with one-second intervals. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
                        ATtiny85&lt;br /&gt;
               &lt;br /&gt;
                       +--- ---+&lt;br /&gt;
          (RST)   PB5 -|1 |_| 8|- VCC &lt;br /&gt;
                  PB3 -|2     7|- PB2    (SCK)          &lt;br /&gt;
    +---|&amp;lt;|------ PB4 -|3     6|- PB1    (MISO)         &lt;br /&gt;
    |   led   +-- GND -|4     5|- PB0    (MOSI)&lt;br /&gt;
    |         |        +-------+&lt;br /&gt;
    +--/\/\/--+&lt;br /&gt;
        1k&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Pololu programming cable pinout (top view)&lt;br /&gt;
&lt;br /&gt;
                          +---+&lt;br /&gt;
    ----------------  gnd |o o| rst&lt;br /&gt;
    ribbon cable     mosi |o o| sck&lt;br /&gt;
    -----red--------  vdd |o o| miso&lt;br /&gt;
                          +---+&lt;br /&gt;
&lt;br /&gt;
    NOTE: The T85 must be externally powered with 5V (4.5V does NOT work!)&lt;br /&gt;
          A t85 driving a standard 2x16 LCD without backlit LED on draws&lt;br /&gt;
          about 8.5mA so with 100mA to spare on a USB port you could consider&lt;br /&gt;
          grabbing 5V from the Pololu programmer. The 5V pin on the &lt;br /&gt;
          programmer is labeled: &amp;#039;VBUS (+5V)&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define LED PB4    // Define ext led pin on PB4&lt;br /&gt;
#define OUTPUT 0&lt;br /&gt;
#define INPUT  1&lt;br /&gt;
#define LOW    0&lt;br /&gt;
#define HIGH   1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void pinMode(int pin,int state)&lt;br /&gt;
{ &lt;br /&gt;
  if (state == OUTPUT)&lt;br /&gt;
  {&lt;br /&gt;
    (DDRB |= (1 &amp;lt;&amp;lt; pin)); &lt;br /&gt;
  } else { &lt;br /&gt;
    (DDRB &amp;amp;= ~(1 &amp;lt;&amp;lt; pin)); &lt;br /&gt;
  }&lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
void digitalWrite(int pin, int state)&lt;br /&gt;
{&lt;br /&gt;
  // make sure port is set to output&lt;br /&gt;
  DDRB |= (1 &amp;lt;&amp;lt; pin);&lt;br /&gt;
&lt;br /&gt;
  if (state == HIGH)&lt;br /&gt;
  { &lt;br /&gt;
    (PORTB |= (1 &amp;lt;&amp;lt; pin)); &lt;br /&gt;
  } else {&lt;br /&gt;
    (PORTB &amp;amp;= ~(1 &amp;lt;&amp;lt; pin));&lt;br /&gt;
  }&lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main( void ) &lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
  pinMode(LED,OUTPUT);    // Set output direction on LED &lt;br /&gt;
&lt;br /&gt;
  while ( 1 ) &lt;br /&gt;
  {&lt;br /&gt;
&lt;br /&gt;
      digitalWrite (LED,HIGH);&lt;br /&gt;
      _delay_ms(1000);&lt;br /&gt;
      digitalWrite (LED,LOW);&lt;br /&gt;
      _delay_ms(1000);&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Read push button state&lt;br /&gt;
* Analog to Digital&lt;br /&gt;
* PWM (pulse width modulation)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Web links:&lt;br /&gt;
&lt;br /&gt;
(AVR)&lt;br /&gt;
* http://www.atmel.com/products/microcontrollers/avr/default.aspx Atmel 8 and 32-bit microcontrollers&lt;br /&gt;
* http://www.pololu.com/catalog/product/1300 Pololu, a basic USB-based AVR ISP Programmer&lt;br /&gt;
* http://winavr.sourceforge.net/ WinAVR, AVR-GCC for Windows&lt;br /&gt;
* http://www.nongnu.org/avrdude/ AVRdude, ROM downloader/updater&lt;br /&gt;
* http://www.engbedded.com/fusecalc AVR Fuse Byte calculator&lt;br /&gt;
* http://www.rickety.us/2010/03/arduino-avr-high-voltage-serial-programmer/ ATtiny fuse byte resetter&lt;br /&gt;
* http://www.arduino.cc/ Arduino, prototyping platform&lt;br /&gt;
* http://www.avrfreaks.net/ AVRfreaks, forum for Atmel microcontrollers&lt;br /&gt;
&lt;br /&gt;
(Other)&lt;br /&gt;
* http://www.raspberrypi.org/ Raspberry Pi, ARM-based Single Board Computer (SBC)&lt;br /&gt;
* http://www.sparkfun.com/ Sparkfun, USA-based electronics store&lt;br /&gt;
* http://littlebirdelectronics.com/ Littlebird Electronics, reseller (and more) for Sparkfun products&lt;br /&gt;
* http://www.robotgear.com.au RobotGear, reseller (and more) for Sparkfun products and Pololu programmer&lt;br /&gt;
* http://www.diptrace.com/ Diptrace, printed circuit board (PCB) design software&lt;br /&gt;
* http://oshpark.com/ OSH Park (previously dorkbotpdx), inexpensive manufacturer for low-volume PCB prototyping&lt;br /&gt;
* http://www.gabotronics.com/development-boards/xmega-xprotolab.htm XprotoLab, a tiny oscilloscope and wave form generator (AWG)&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>