Sodele.
Meine Biene hat inzwischen ein I2C-Display, und als kleine Fingerübung habe ich mal ein Progrämmchen geschrieben, was die Werte der Lichtsensoren schön nebeneinander ausgibt, und zwar nicht in Hex, wie im erweiterten Testprogramm, sondern in Menschen-Zahlen... [-(
So kann man ohne langes fummeln, herumspielen, warten und Blinkzeichen zählen live die Werte direkt ablesen.
Einfach Biene auf den Untergrund, einschalten und schauen:
Code:
#include <nibobee/iodefs.h>
#include <nibobee/usart.h>
#include <nibobee/i2cmaster.h>
#include <nibobee/lcdi2c.h>
#include <nibobee/line.h>
#include <nibobee/delay.h>
#include <avr/eeprom.h>
#include <stdio.h>
void __eewr_block (const void *src, void *dst, size_t n) //muss rein wegen neuerer Bibliotheken
{ //----------oder so-------------------
eeprom_write_block(src,dst,n); //--ergibt sonst Probleme-------------
} //-------beim einbinden der-----------
void __eerd_block (void *dst, const void *src, size_t n) //---------line.h---------------------
{ //------------------------------------
eeprom_read_block(dst,src,n); //------------------------------------
} //------------------------------------
int main() {
usart_setbaudrate(9600);
usart_enable();
i2c_init();
lcd_init(0x27);
lcd_setBacklight(0);
printf(" Liniensensoren "); //Was sehn wir?
set_output_group(IO_SENS); // Pull-ups aktivieren
line_init();
uint16_t links = 0; //Wert linker LS
uint16_t mitte = 0; //--"-- mittlerer
uint16_t rechts= 0; //--"-- rechter
while(1) {
enable_interrupts();
links= line_get(LINE_L); //Linie links auslesen
mitte= line_get(LINE_C); //Linie mitte auslesen
rechts=line_get(LINE_R); //Linie rechts auslesen
lcd_setCursor(0,1); //Ausgabe Licht
printf(" %4d %4d %4d ", links, mitte,rechts);
delay(100);
}
return 0;
}
Funktioniert hervorragend, und gibt, da man sich Zettel, Stift und Geduld spart einige interessante Erkenntnisse.
Falls ihr es benutzt: passt auf, meine Biene hat das Display _richtigherum_ drauf, also oben=vorne, sonst sind die Seiten vertauscht und rechts=links.
Der obere Teil (mit der EEprom-Geschichte) musste rein, da ich vor einigen Tagen alles neu installiert habe hier, ohne läuft bei mir nix, sowie ich die Liniensensoren benutzen will, eventuell kann der Teil ansonsten noch weg.
Lesezeichen