Koda: |
#include <avr/io.h>
#include <avr/interrupt.h> #include <avr/sleep.h> #define Trigger PORTB2 #define Start PORTB1 int main(void) { DDRB = 0b00000011; PORTB |= 0b00001100; PCMSK |= (1<<PCINT2); GIMSK |= (1<<PCIE); set_sleep_mode(SLEEP_MODE_PWR_DOWN); sei(); while(1) { sei(); sleep_mode(); cli(); while((PINB & (1<<Trigger))==0x00) //ko je pritisnjena tipka, LED gori { PORTB |= (1<<Start); } PORTB &= ~(1<<Start); } return 0; } |
Koda: |
#include <avr/io.h>
#include <avr/interrupt.h> #include <avr/sleep.h> #define Trigger PORTB2 #define Start PORTB1 int main(void) { DDRB = 0b00000010; PORTB = 0b00000100; PCMSK |= (1<<PCINT2); GIMSK |= (1<<PCIE); MCUCR |= (1<<SM1); MCUCR &= ~(1<<SM0); sei(); while(1) { sleep_enable(); sleep_cpu(); sleep_disable(); if((PINB & (1<<Trigger))==0) PORTB ^= (1<<Start); while((PINB & (1<<Trigger))==0){} } return 0; } |
Koda: |
$regfile = "attiny13.dat"
$crystal = 4800000 Config Portb.1 = Output Config Portb.2 = Input Enable Interrupts Set Pcmsk.pcint2 Set Gimsk.pcie Set Mcucr.sm1 Reset Mcucr.sm0 Trigger Alias Pinb.2 Startmotor Alias Portb.1 Portb.2 = 1 Do Set Mcucr.se Sleep Reset Mcucr.se If Trigger = 0 Then Toggle Startmotor End If Bitwait Trigger , Set Loop End |
Koda: |
//T1 = active high - se proži proti 1 //T2 = active low - se proži proti 0 #define T1 (PINB & 0x01) #define T2 !(PINB & 0x02) #define ClrLED1 (PORTB &= ~(1 << PB0)) #define SetLED1 (PORTB |= (1 << PB0)) .... if (T1) SetLED1; if (T2) ClrLED1; |
Koda: |
#define LCD_RS 0 //define MCU pin connected to LCD RS #define LCD_RW 1 //define MCU pin connected to LCD R/W #define LCD_E 2 //define MCU pin connected to LCD E #define LCD_D4 4 //define MCU pin connected to LCD D3 #define LCD_D5 5 //define MCU pin connected to LCD D4 #define LCD_D6 6 //define MCU pin connected to LCD D5 #define LCD_D7 7 //define MCU pin connected to LCD D6 #define LDP PORTD //define MCU port connected to LCD data pins #define LCP PORTD //define MCU port connected to LCD control pins #define LDDR DDRD //define MCU direction register for port connected to LCD data pins #define LCDR DDRD //define MCU direction register for port connected to LCD control pins |
Koda: |
#include <stdio.h>
#include <string.h> char tekst [16]; volatile unsigned int stevilo1, stevilo2; unsigned char a,b,c; int main () { printf ("Merjenje velicin\n\n"); stevilo1 = 3510; //napetost stevilo2 = 220; //tok printf ("stevilo1=%d stevilo2=%d\n", stevilo1, stevilo2); //TU JE VSE OK sprintf (tekst, "U=%.2d.%.2dV I=%.1d.%.2dA\n", stevilo1/100, stevilo1%100, stevilo2/100, stevilo2%100); //pretvorba stevilke v string: //tekst = rezultat; //"%.2d" = desetiška številka, z dvema ciframa //stevilo1 = stevilo, ki ga želiš pretvoriti //TU PA SE stevilo1 ŽE SPREMENI printf ("mesto: 1234567890123456\n"); printf ("IZPIS: %s\n" ,&tekst[0]); printf ("stevilo1=%d stevilo2=%d\n", stevilo1, stevilo2); scanf("%s", &a); //počakaj pritisk neke tipke } |