Skip to content

Noutati ATmegaCLib2 din branches

August 19, 2013

Modificari sau adaugari la biblioteca ATmegaCLib2 din branches care inlocuieste prima versiune publicata in trunk:

  • au fost modificate functiile portului serial pentru a include suport pentru ATmega16, ATmega16A, ATmega32, ATmega32A (in viitorul apropiat – sper – vom avea suport pentru al doilea port serial acolo unde este cazul);
  • a fost adaugat suport pentru LCD grafic 128×64 pixeli, KS0108 (au fost incluse cateva fisiere de fonturi);
  • a fost inclusa biblioteca FreqMeasure;
  • setul de caractere pentru functiile de afisare pe digiti (7-seg) este acum stocat in memoria FLASH;
  • exemplul ATmega2_7SEG_CHARSET a fost reparat;
  • in exemplele cu PCF8583 a fost introdusa o metoda mai sigura de procesare a datelor receptionate pe portul serial (exemplul original din biblioteca pentru Arduino nu oferea garantia procesarii intregului sir de caractere destinat setarii datei si orei curente);
  • a fost reintrodusa functia millis() (baietii de pe forumul arduino.cc m-au convins de importanta ei) care fusese inlocuita initial de non-blocking delays. Acestea pot coexista pasnic atata vreme cat nu se incearca folosirea lor simultana (ambele folosesc TIMER0). In viitor, non-blocking delays va putea folosi TIMER2;
  • au fost adaugate cateva exemple noi.

Eram putin nervos in ce priveste functiile pentru LCD grafic, pentru ca nu am hardware-ul respectiv, insa Florin Tanasa mi-a amintit ca pot folosi AVR Simulator IDE, pentru care am licenta.

ks0108-moduleRezultatul simularii programului de test compilat pentru ATmega644P

#ifndef F_CPU
#define F_CPU 16000000U // required by Atmel Studio 6
#endif

#include <avr/io.h>
//#include <avr/interrupt.h>
//#include <util/delay.h>
#include <avr/pgmspace.h>
#include "arial_bold_14.h"
#include "corsiva_12.h"
#include <atmegaclib2.h>

void main(void) __attribute__((noreturn));
void main(void) {
  // Wait a little while the display starts up
  for(volatile uint16_t i=0; i<15000; i++);

  // Initialize the LCD
  GLCD_Init(0);

  // Select a font
  GLCD_SelectFont(Arial_Bold_14, GLCD_ReadFontData, GLCD_BLACK);
  // Set a position
  GLCD_GotoXY(15,10);
  // Print some text
  GLCD_Puts_P(PSTR("KS0108-Treiber"));
  // a nice little round rect
  GLCD_DrawRoundRect(5, 5, 117, 20, 8, GLCD_BLACK);

  // Once again
  // Select a font
  GLCD_SelectFont(Corsiva_12, GLCD_ReadFontData, GLCD_BLACK);
  // Set a position
  GLCD_GotoXY(5,30);
  // Print some text
  GLCD_Puts_P(PSTR("http://www.apetech.de\nmailto:me@apetech.de"));

  while(1);
}

 
Lasă un comentariu

Va rog, nu folositi limbaj de messenger. Multumesc!

Completează mai jos detaliile despre tine sau dă clic pe un icon pentru autentificare:

Logo WordPress.com

Comentezi folosind contul tău WordPress.com. Dezautentificare / Schimbă )

Poză Twitter

Comentezi folosind contul tău Twitter. Dezautentificare / Schimbă )

Fotografie Facebook

Comentezi folosind contul tău Facebook. Dezautentificare / Schimbă )

Fotografie Google+

Comentezi folosind contul tău Google+. Dezautentificare / Schimbă )

Conectare la %s

%d blogeri au apreciat asta: