In this example we simply flashed the LEDs on a Waveshare OpenM128 AVR development board – I am trying to test out and use a variety of AVR related boards that I have, this is a very nice compact development board with LEDs, buttons, joystick and also a wide variety of connectors for LCDs, I2C, UART, PWM and various ports.
The board comes with a wide range of code that can be downloaded and there also a wide range of useful adaptor boards that can be plugged in to the board
This is a picture of the board, the LEDs are all connected to PortA on this board
Parts List
Name | Link |
OPenM128 AVR board | ATmega128 AVR Development Evaluation Board Kit = OpenM128 Standard |
USBASP programmer | 1LOT New USBASP USBISP AVR Programmer USB ISP USB ASP ATMEGA8 ATMEGA128 Support Win7 64 |
MikroC for AVR |
MIKROC Code
Just simple examples using MIkroC to flash the LEDs on the board
[codesyntax lang=”cpp”]
void main() { DDRA = 0xFF; // set direction to be output PORTA = 0x00; // turn OFF the PORTA leds while (1) { PORTA = 0x00; Delay_ms(1000); PORTA = 0xff; Delay_ms(1000); } }
[/codesyntax]
And here is another one
[codesyntax lang=”cpp”]
char counter; void wait() { Delay_ms(100); } void main() { DDRA = 0xFF; // set direction to be output PORTA = 0x00; // turn OFF the PORTA leds while (1) { for (counter=0; counter<8; counter++) { PORTA |= 1 << counter; wait(); } counter = 0; while (counter<8) { PORTA &= ~(1 << counter); wait(); counter++; } } }
[/codesyntax]
Atmel Studio Code
[codesyntax lang=”cpp”]
#include <avr/io.h> #include <util/delay.h> void delay_ms_test(unsigned char ms) { unsigned char i; i++; if (i%2==1) PORTA=0x00; } void delay_ms(unsigned int ms) { for(volatile unsigned int i=0;i<ms;i++); } int main(void) { DDRA=0xFF; PORTA=0x00; while(1) { // delay_ms(1000); PORTA=0x00; delay_ms(50000); PORTA=0xff; delay_ms(50000); } }
[/codesyntax]
Programming
I used AVRpal.net and connected a USBASP programmer, I had to use Zadig to install the necessary driver on Windows 10. I have managed to get this combination working but after a reboot the programmer stopped working so I will write a guide for Windows 10 later. I have several programmers such as a USB Tiny ISP, USB ASP and a USB AVRISP MK11.
The combination of getting these programmers working is a pain on Windows 10 so far
Links