Håller precis på att lära mig lite enkel AVR-programmering.
Har kommit så långt att jag kan få en lysdiod att blinka med en ATmega48 och AVR Studio 4.
Nu tänkte jag ta detta ett steg till och skriva lite värden till en 7 segments LED-display.
Jag köpte ett paket random displayer på Kjell och när jag kom hem såg jag att databladen var på tyska och förmodligen från nån gång på 80-talet.
Har suttit och testat och mätt på pinnarna och kommit fram till att det är negativ ingång på alla pinnarna och att alla går till positiv retur, om man nu kan skriva så.. Vi har testat lite på skolan men en motorola HC12 i assembler att driva en liknande display och då är det tvärtom där returen går på minus sidan.
Jag vet inte riktigt hur jag ska ändra mitt blinkade led-program så att den istället för att sätta en etta (+5v) sätter jord på utpinnarna. Som det är nu kan jag ju endast ändra "returen" på displayen.
Jag bifogar ett luddigt kooood-exempel för mitt blinkade led-program.
Kod: Markera allt
#include <avr/io.h>
#include <util/delay.h>
void delayms( uint16_t millis ) {
while ( millis ) {
_delay_ms( 1 );
millis--;
}
}
int main( void ) {
DDRD |= 1 << PD1; // set LED pin PD1 to output
while ( 1 ) {
PORTD &= ~( 0 << PD1 ); // LED off
delayms( 900 ); // delay 900 ms
PORTD |= 0 << PD1; // LED on
delayms( 100 ); // delay 100 ms
}
return 0;
}