![]() ![]() ![]() |
![]() ![]() ![]() ![]() ![]() |
|||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||
Microchip: AVR Assembly Web Documentation | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2018-2019 ICS4U: AVR Optimization (Blog: Ethan M) EAGLE LIBRARY: ACES_SMT.lbr | ||||||||||||||||||||||||||||
Session 6: ACES DC Fan Project |
||||||||||||||||||||||||||||
Jun 10 |
![]() |
Distribution of DC Desktop Fans to 2019 ACES Graduates (made possible by the phenomenal commitment to his peers by Kreher F-A) |
![]() |
← Click to enlarge
|
||||||||||||||||||||||||
77 May 29 |
![]() GB, JC, AH, KFA SK, DR, HR |
Final Class It'll be hard to compete with average... |
30d | |||||||||||||||||||||||||
76 May 27 |
![]() |
![]() |
30c | |||||||||||||||||||||||||
75 May 23 |
ISP Work Period | 30c | ||||||||||||||||||||||||||
74 May 21 |
![]() GB*, JC, AH, KFA SK, DR*, HR |
ISP Work Period | 30c | |||||||||||||||||||||||||
73 May 16 |
Timer0 Regs![]() |
Timer1: Input Capture (ICP) DC Fan Project: Full |
DER (due Monday) |
5b | ||||||||||||||||||||||||
72 May 14 |
AP Calculus | Work Period for GB, AH, HR | 5b | |||||||||||||||||||||||||
71 May 10 |
![]() |
![]() |
![]() |
5b | ||||||||||||||||||||||||
70 May 8 |
AP English | Work Period for KF-A | 5b | |||||||||||||||||||||||||
69 May 6 |
![]() GB, JC, AH KFA, SK, DR, HR |
DC Fan Project: LCD Update: Array Indexing in AVR Assembly |
![]() |
6c | ||||||||||||||||||||||||
68 May 2 |
2018 Alumni Visit | Flex Work Period | DER due | 6b | ||||||||||||||||||||||||
67 Apr 30 |
POT→ADC→DoubleDabble→LCD | ![]() LCDLib.asm |
![]() DoubleDabble.asm |
|||||||||||||||||||||||||
| ||||||||||||||||||||||||||||
![]() 66 Apr 26 |
![]() Weiman:Alfred State (Thanks, Graydon) |
Complete Double Dabble exercise
![]() LCD Direct Drive Project Description ![]() |
![]() LCDLib.asm ![]() Source Code: LiquidCrystal Library |
Hitachi's HD44780U LCD Controller/Driver 4-bit Initialization Sequence (p. 46) |
||||||||||||||||||||||||
65 Apr 24 |
![]() |
Binary to BCD Conversion:![]() |
![]() BCD Arithmetics: AVR204 |
Recall DS1307 Registers![]() |
||||||||||||||||||||||||
64 Apr 18 |
![]() |
The FASTEST! way to toggle
Digital Pin 13: sbi PINB,5 (or any AVR I/O pin) Complete LCDBrightnessT2M7.asm |
DC Fan Speed Requirements ![]() |
Timer2 Compare Match![]() |
||||||||||||||||||||||||
63 Apr 16 |
Timer2 Control Regs![]() |
Tidy up ServoSweepinClass.asm: lds, not ldi![]() Introduction to the AVR's ADC Peripheral Timer2 Fast PWM Compare Match Modes ADC Register References |
Timer 2 Modes![]() |
Timer2 Prescalers![]() ![]() Arduino Timer Usage |
||||||||||||||||||||||||
62 Apr 12 |
ADC Block Diagram![]() |
Day 3 of ServoSweep![]() |
![]() ![]() DC Fan Datasheet |
![]() |
||||||||||||||||||||||||
61 Apr 10 |
ADC Block Diagram![]() |
Assembly Task #40: The DC Fan PART D: Speed Control (ADC) 2016/2017 Challenge 4: Analog-to-Digital Conversion |
The FASTEST! way to toggle
Digital Pin 13: sbi PINB,5 (or any AVR I/O pin) |
![]() |
||||||||||||||||||||||||
60 Apr 8 |
Adafruit Learning: Servo Motors RetroDan: ADC Assembly Tutorial (details an LDR Theremin on an ATtiny13/85) |
Complete ServoSweep from last class AS7 Assembly Project: ServoSweepwithADC MaxEmbedded: The ADC of the AVR |
DIDR0![]() ![]() |
![]() |
||||||||||||||||||||||||
59 Apr 4 |
![]() |
AS7 Assembly Project: ServoSweep
AppNotes for Multibyte Arithmetics AVR200, AVR201 (AVR201.asm), AVR202 |
![]() |
![]() |
||||||||||||||||||||||||
58 Apr 2 |
Timer1 Regs![]() |
Flex Page Proposal Due, Common SMT Parts
![]() Assembly-Level PWM Control over your Servo ![]() |
Timer1 Modes![]() |
![]() |
||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||
March 29: FLEX PAGE GROUP DISCUSSION and DEVELOPMENT |
||||||||||||||||||||||||||||
56 Mar 27 |
![]() |
Long ISP
Proposal Due ACES Desktop Fan Project? Recall: Servo PWM Requirements Fan Speed Control: PWM Requirements (p. 10-11) ![]() |
![]() |
|||||||||||||||||||||||||
MARCH BREAK |
||||||||||||||||||||||||||||
Session 5: AVR ALP: External Interrupts and Detailed Investigation of Timer Interrupts |
||||||||||||||||||||||||||||
CLASS | REFERENCE | CONCEPTS | PROJECTS | SUPPLEMENTARY | ||||||||||||||||||||||||
55 Mar 7 |
Medium ISP Videos...![]() |
Medium ISP Presentations Medium ISP Videos... ![]() |
![]() |
![]() |
||||||||||||||||||||||||
54 Mar 5 |
Reliable Webcasters:![]() Nick Gammon Ken Shirriff ![]() |
(if PCBs arrive, it's an ISP work period) CTC: Timer 1 Mode 4 (Clear Timer on Compare match) |
20c, 20d | |||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||
53 Mar 1 |
Ken Shirriff's:
Secrets of Arduino PWM |
Demonstration of Morland Bargraph SMD V1 Arduino Forum: PWM Cheat Sheet ![]() |
Timer Interrupt Flags![]() |
Fast vs Phase-Correct![]() |
||||||||||||||||||||||||
52 Feb 27 |
![]() |
HARDWARE-LEVEL INTERRUPTS Squeezing the last drop of interrupt value from Normal Mode 0: Output Compare on Timer 1 and Timer 0 |
![]() |
![]() |
||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||
51 Feb 25 |
4-Wire DC Fan. Pt. A.![]() ![]() |
HARDWARE-LEVEL INTERRUPTS Squeezing the last drop of interrupt value from Timer1 Normal Mode 0: Output Compare |
![]() |
TIMSK1 & OCIE1![]() |
||||||||||||||||||||||||
50 Feb 19 |
Hugo's ISP Preview![]() explains the role of the volatile keyword |
Complete (first draft of): T1NormalOVFISR.asm Modifications to T1NormalOVFISR.asm |
5![]() ![]() ![]() |
![]() ![]() DC Fan Datasheet |
||||||||||||||||||||||||
49 Feb 19 |
![]() RSGC ACES: Common SMD Parts (Updated) |
ASM: T1NormalOVFISR.asm![]() delay(), millis(), microseconds(), Servo, Tone |
Acquire: prescalers.h | ![]() |
||||||||||||||||||||||||
48 Feb 13 |
![]() Application Note: AVR Timers |
Introduction to AVR Timers AVR Assembly Task: Timer 1 Normal Mode Arduino C: Timer 1 Library and Resources TimerOne Source: TimerOne.h, TimerOne.cpp TimerOne Documentation TimerOne Examples: Interrupt, FanSpeed |
Timer1 Modes![]() |
Timer1 Regs![]() |
||||||||||||||||||||||||
47 Feb 11 |
![]() |
Medium ISP Previews Hodgson Kitchens: Bakin' the SMT Bargragh @ 3! |
![]() |
![]() |
||||||||||||||||||||||||
46 Feb 7 |
![]() |
SPI: Serial Peripheral Interface![]() ![]() ![]() |
Interleaving two threads with compiler directives: ![]() |
![]() SPI Task B. |
||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||
45 Feb 5 |
![]() |
SPI: Serial Peripheral Interface (Hardware SPI vs Software Shiftout) ![]() ![]() |
![]() GB, JC, KF-A, AH, SK, DR*, HR |
![]() |
||||||||||||||||||||||||
43 Jan 30 Feb 1 |
![]() RTC Appliance |
AS7 Project Dependencies: See line 946 in m328Pdef.inc External Interrupt (RTC SQW) |
4 | 328P Int. Vecs.(p.66)![]() |
||||||||||||||||||||||||
42 Jan 28 |
Include file: iom328p.h ![]() External Interrupts |
We've talked about this as a terrific ISP:![]() Your first peripheral... ASM: External Interrupt (RTC SQW) |
![]() |
![]() |
||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||
41 Jan 24 |
![]() |
AS Debugging Resources Interrupts Nick Gammon's Notes on Interrupts (lots of examples) Tutorial #2: AVR Microcontroller Interrupts |
![]() |
328P Int. Vecs.(p.66)![]() |
||||||||||||||||||||||||
Session 4: Introduction to ATMEL Studio 7 with ATMEL ICE: C and AVR Assembly Language Programming |
||||||||||||||||||||||||||||
CLASS | REFERENCE | CONCEPTS | PROJECTS | SUPPLEMENTARY | ||||||||||||||||||||||||
40 Jan 22 |
![]() |
ATMEL Studio 7: AVR Assembly Efficiency + Accuracy → Productivity: Customize your Template (BareMinimum328p.asm) ASM: BlinkSafe and BlinkBicolor |
Medium ISPs | ![]() |
||||||||||||||||||||||||
39 Jan 18 |
AS7: C version of shiftOut on Bargraph Appliance | ![]() |
||||||||||||||||||||||||||
38 Jan 16 |
A. Hodgson's Reflow Demonstration |
SMD Version of the Morland Bargraph (.sch, .brd) RSGC ACES: Common SMD Parts (Updated) |
![]() |
Medium ISPs | ||||||||||||||||||||||||
37 Jan 14 |
![]() |
AutoDesk EAGLE![]() RSGC ACES: Common SMD Parts AS7: C version of shiftOut on Bargraph Appliance |
Medium ISP Proposal Due 20a |
|||||||||||||||||||||||||
36 Jan 10 |
pp. 12-21![]() (CBlink.c) |
AS7 & Atmel-ICE: CBlink.c Blog: Arduino Assembly/C Programming with ICE Microchip's ATMEL/AVR Webdoc |
![]() |
20a | ||||||||||||||||||||||||
35 Jan 8 |
![]() |
Medium ISP and Proposal Form
IDE: Atmel Studio 7 Programmer: Atmel-ICE |
![]() GB, JC, KF-A, AH, SK, DR, HR 20a |
|||||||||||||||||||||||||
DECEMBER BREAK |
||||||||||||||||||||||||||||
Session 3: Introduction to AVR Assembly Language: Arduino IDE Inline and Standalone Assembly Language Programming |
||||||||||||||||||||||||||||
CLASS | REFERENCE | CONCEPTS | PROJECTS | SUPPLEMENTARY | ||||||||||||||||||||||||
34 Dec 18 |
![]() |
オープンソースでプログラムもできる、ニキシー管デジタル時計がアツい ExploreBits |
ACES' Alumni visit (10:30-10:50) |
3, 20a | ||||||||||||||||||||||||
33 Dec 14 |
AVR AppNotes: Comparing 16-bit Regs |
AVR Addressing Modes (Full) AVR Instruction Manual (Ch. 2) Arrays (with Example handout) Comparing 16-bit Registers |
![]() |
3 | ||||||||||||||||||||||||
32 Dec 12 |
![]() |
ExploreBits |
![]() |
3 | ||||||||||||||||||||||||
31 Dec 10 |
![]() |
AVR Status Register: SREG (0x3F)
Using as ExploreBits |
3 tst, swap, inc, dec, breq, brne |
|||||||||||||||||||||||||
30 Dec 6 |
![]() |
BicolorBlink (see F/C for solutions) | ![]() |
3 ser, com, sbi, cbi |
||||||||||||||||||||||||
29 Dec 4 |
![]() |
Presentation of Telephone Keypad Projects
AVR-as Example program (with Notes at End) Assembly Access to the Serial Monitor |
![]() |
![]() GB, JC, KF-A, AH, SK, DR, HR |
||||||||||||||||||||||||
28 Nov 30 |
![]() |
Please have
Windows 10 & Atmel Studio 7 Installed
TrafficLight (Enhanced) (Schaffer, ACES '18) Arduini IDE: Standalone AVR Assembly |
![]() |
![]() Make maximum use of Predefined Constants io328p.h |
||||||||||||||||||||||||
27 Nov 28 |
![]() |
Blink (completed) TrafficLight (Basic) (Schaffer, ACES '18) AVR Delay Loop Calculator |
![]() |
GPIO Ports![]() |
||||||||||||||||||||||||
26 Nov 26 |
AVR Optimization![]() pp. 24-26, 77 volatile |
Arduino IDE: Inline AVR Assembly 8-bit AVR-gcc Assembly Language Instruction Syntax: mnemonic [dst,] [src] ![]() asm ("mnemonic dst,src \n") ; First Attempt: Blink |
![]() |
AVR 8-bit Instruction Set![]() ![]() ldi, out, clr, eor |
||||||||||||||||||||||||
Session 2: ISP Presentations, Interrupts and Keypad Button Debouncing Techniques |
||||||||||||||||||||||||||||
CLASS | REFERENCE | CONCEPTS | PROJECTS | SUPPLEMENTARY | ||||||||||||||||||||||||
25 Nov 22 |
PWM (Pulse Width Modulation) vs BCM (Binary Code Modulation) |
Hackaday: Debounce your Noisy Buttons![]() ![]() |
![]() |
![]() |
||||||||||||||||||||||||
24 Nov 20 |
![]() |
Hackaday: Debounce your Noisy Buttons![]() ![]() |
![]() |
Make heavy use of these Predefined Constants io328p.h |
||||||||||||||||||||||||
23 Nov 14 |
![]() |
![]() Hardware Interrupts (External, PinChange) ![]() |
![]() |
328p Int. Vectors![]() |
||||||||||||||||||||||||
22 Nov 8 |
Short ISP Videos...![]() |
Short ISP Presentations Course Reset: Install Windows 10 and Atmel Studio 7 |
10d, 2a | ![]() |
||||||||||||||||||||||||
21 Nov 6 |
Short ISP Videos...![]() |
Short ISP Presentations | ![]() |
![]() |
||||||||||||||||||||||||
20 Nov 2 |
Short ISP Work Period | 10c | ||||||||||||||||||||||||||
19 Oct 31 |
Short ISP Work Period | 10c | ![]() |
|||||||||||||||||||||||||
18 Oct 29 |
Short ISP Work Period | |||||||||||||||||||||||||||
SHORT ISP (4 weeks) : Sep-Oct ( Component ) ( Options ) |
||||||||||||||||||||||||||||
Session 1: The CHUMP Processor |
||||||||||||||||||||||||||||
CLASS | REFERENCE | CONCEPTS | PROJECTS | SUPPLEMENTARY | ||||||||||||||||||||||||
17 Oct 25 |
CHUMP: Completed Processor Videos...![]() Short ISP Work Period |
|||||||||||||||||||||||||||
16 Oct 23 |
![]() |
CHUMP: Day 11 Final Build Session: Completed Processor |
1e | |||||||||||||||||||||||||
15 Oct 19 |
CHUMP: Day 10 Second-to-Last Build Session: Completed Processor |
1e | ||||||||||||||||||||||||||
14 Oct 17 |
InSPiration from Mariano, ![]() Awesomeness? |
CHUMP: Day 9 Third-to-Last Build Session: Completed Processor |
1e | ![]() |
||||||||||||||||||||||||
13 Oct 15 |
![]() |
CHUMP: Processor (Common) Videos...![]() Short ISP Work Period |
1e | |||||||||||||||||||||||||
12 Oct 11 |
![]() |
CHUMP: Day 8 Build The Processor |
1d | ![]() |
||||||||||||||||||||||||
11 Oct 9 |
![]() |
Short ISP: Preview (see ICS4U post for details) |
1d | ![]() |
||||||||||||||||||||||||
10 Oct 4 |
![]() |
CHUMP: Day 7 Build The Processor ![]() |
10b, 1d | ![]() |
||||||||||||||||||||||||
9 Oct 2 |
![]() |
CHUMP: ALU Videos...![]() Short ISP Work Period #2 |
10b, 1d | ![]() ![]() |
||||||||||||||||||||||||
8 Sep 28 |
2 Binary Variables?...![]() ...16 Logical Functions! |
CHUMP: Day 6 The Arithmetic and Logic Unit Concept: Active LOW vs Active HIGH Logic Part 3: The Arithmetic and Logic Unit Reference: Eater's ALU Page |
Boolean Ops of 2 vars![]() |
74LS181 ALU Active High Operations ![]() |
||||||||||||||||||||||||
7 Sep 26 |
![]() 74LS181 Comb. Circuit |
CHUMP: Day 5 The Arithmetic and Logic Unit English Translation of a Polish Blog Review: Ken Shirriff's Blog: The SN74LS181 ALU How it Works and Why it's so Strange |
1c | ![]() |
||||||||||||||||||||||||
6 Sep 24 |
List of Short ISPs | CHUMP: Clock Videos...![]() Short ISP Work Period #1 (first class of each week) |
RSGC's 1st Computer (Jan 7, 1980 @ $25K) Our PDP-11/03 Minicomputer (SN74LS181 as ALU) |
![]() |
||||||||||||||||||||||||
5 Sep 19 |
CHUMP: Day 4 The Clock Module Build Session |
1b | ![]() |
|||||||||||||||||||||||||
4 Sep 17 |
![]() |
CHUMP DAY 3: The Clock Module (CLK): Distribute Clock Kits Ben Eater's Terrific 4-part 555 Clock Series... ![]() ![]() ![]() ![]() |
1b | ![]() |
||||||||||||||||||||||||
3 Sep 13 |
List of Short ISPs pp. 81-82 |
Short ISP Selection: Submit Hard Copy Proposal
First Look at the Project and Code CHUMP: Day 2 |
10a, 1a | ![]() |
||||||||||||||||||||||||
2 Sep 11 |
List of Short ISPs |
![]() Read upside down (it's worth the RISC) First Look at the Project and Code Committed CHUMP Program due Saturday CHUMP: Day 1 |
10a, 1a | SAPP-1: First Look | ||||||||||||||||||||||||
1 Sep 7 |
2018/2019 ACES Program Student Outline Mr. D's Timetable |
Our ACES' Program: Contradictions
ACES Hall of Fame: E. McAuliffe ('18), Mariano Elia ('15) Distribute Workbooks ![]() TA Day Assignments (First Term) PB Machine: Due Thursday in class Short ISP Discussion, Sep 8: The Launch ![]() |
![]() |
![]() |