Ср фев 16, 2022 17:42:46
Ср фев 16, 2022 23:42:40
#include <mega8.h>
#include <io.h>
#include <delay.h>
//#include <avr/pgmspace.h>
//#include "btg13264.h"
#define CS PORTC.0 //
#define RES PORTC.1 //
#define DC PORTC.2 //
#define CLK PORTC.3 //
#define SDA PORTC.4
#define LCD_bias_set 0b10100010 //
#define ADC_select 0b10100000 //
#define COM_out_mode 0b11001000 //
#define V_sel 0b00100101 //
#define VOL_set 0b10000001 //
#define COLUMN_adr_set 0b00011011 //
#define POWER_set 0b00101111 //
#define START_line_set 0b01000000 //
#define PAGE_adr_set 0b10110000 //
#define COLUMN_adr_up 0b00010000 //
#define COLUMN_adr_lo 0b00000000 //
void CpuInit(void)
{
DDRC=0xFF;
PORTC=0b11111111;
}
void LcdSend(char byte, char data ) //
{
char i;
if(data) DC = 1;
else DC = 0;;
CLK = 1 ; // SPI_MODE = 1
CS = 0 ; // Chip Select - Enable
for(i=0; i<8; i++)
{
if (byte & 0x80)
{
SDA = 1 ;
}
else
{
SDA = 0 ;
}
CLK = 0 ;
byte <<= 1;
CLK = 1 ;
}
CS = 1 ; // Chip Select - Disable
CLK = 1 ; // SPI_MODE = 1
}
void LcdInit(void)
{
CS - 0 ;
RES = 0 ;
DC = 0 ;
delay_us(40);
RES = 1 ;
RES = 0 ;
delay_us(10);
RES = 1 ;
LcdSend(LCD_bias_set, 0);
LcdSend(ADC_select, 0);
LcdSend(COM_out_mode, 0);
LcdSend(V_sel, 0);
LcdSend(VOL_set, 0);
LcdSend(COLUMN_adr_set, 0);
LcdSend(POWER_set, 0);
}
void LcdOn(void)
{
LcdSend(0b10101111, 0);
}
void LcdGoToXYSym(char x, char y)//переход на знакоместо (1-22, 1-8)
{
if(0<<y<=8) LcdSend(PAGE_adr_set | (y-1), 0);
if(0<<x<=22){
x=(x-1)*6;
LcdSend((COLUMN_adr_up | (x >> 4)), 0);
LcdSend((COLUMN_adr_lo | (x & 0b00001111)), 0);
}
}
void LcdClear(void)
{
char num;
char i;
LcdSend(START_line_set, 0);
for(num=1; num<=8; num++){
LcdGoToXYSym(1, num);
for(i=0; i < 132; i++ ){
LcdSend(0x00, 1);
}
}
}
void main(void)
{
CpuInit();
LcdInit();
LcdClear();
LcdOn();
while (1)
{
LcdGoToXYSym(3, 3);
LcdSend(0x07, 1);
LcdSend(0x08, 1);
LcdSend(0x70, 1);
LcdSend(0x08, 1);
LcdSend(0x07, 1);
LcdSend(0x00, 1);
delay_ms(500);
}
}
Пн фев 28, 2022 16:23:52
Вс мар 13, 2022 20:44:24
Пн апр 25, 2022 19:33:17
Вс май 08, 2022 12:45:39
/*******************************************************
This program was created by the
CodeWizardAVR V3.12 Advanced
Automatic Program Generator
Chip type : ATtiny13A
AVR Core Clock frequency: 1,200000 MHz 9.6 Mhz / 8 preskaller
Memory model : Tiny
External RAM size : 0
Data Stack size : 16
*******************************************************/
#include <tiny13a.h>
// 1 Wire Bus interface functions
#include <1wire.h>
// DS1820 Temperature Sensor functions
#include <ds1820.h>
// maximum number of DS1820 devices
// connected to the 1 Wire bus
#define MAX_DS1820 8
// number of DS1820 devices
// connected to the 1 Wire bus
unsigned char ds1820_devices;
// DS1820 devices ROM code storage area,
// 9 bytes are used for each device
// (see the w1_search function description in the help)
unsigned char ds1820_rom_codes[MAX_DS1820][9];
// Declare your global variables here
void main(void)
{
// Declare your local variables here
// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=(1<<CLKPCE);
CLKPR=(0<<CLKPCE) | (0<<CLKPS3) | (0<<CLKPS2) | (0<<CLKPS1) | (0<<CLKPS0);
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
// Input/Output Ports initialization
// Port B initialization
// Function: Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
DDRB=(0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0);
// State: Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
PORTB=(0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);
// 1 Wire Bus initialization
// 1 Wire Data port: PORTB
// 1 Wire Data bit: 4
// Note: 1 Wire port settings are specified in the
// Project|Configure|C Compiler|Libraries|1 Wire menu.
w1_init();
// Determine the number of DS1820 devices
// connected to the 1 Wire bus
ds1820_devices = w1_search(0xf0,ds1820_rom_codes);
while (1)
{
// Place your code here
}
}
Вс май 08, 2022 13:23:40
Вс май 08, 2022 13:30:54
Вс май 08, 2022 13:46:47
Вс июл 17, 2022 07:04:02
Пн июл 25, 2022 12:25:45
// область глобальных переменных в отдельном С-файле:
#asm
.cseg
.org 8000 // адрес
.db 0x64 // константа
#endasm
// В main:
OSCCAL = *((volatile flash uint8_t *) OSCCAL_CONST_ADRESS);
Пн июл 25, 2022 13:34:35
Пн июл 25, 2022 21:24:37
ARV писал(а):а зачем, если не секрет?
Сб дек 17, 2022 16:34:26
Сб дек 17, 2022 17:47:37
Сб дек 17, 2022 18:46:55
Сб дек 17, 2022 19:13:43
Сб дек 17, 2022 22:49:23
Пт янв 13, 2023 19:35:27
var.h(4), #included from: lern.c: '(' expected
var.c(1): '(' expected
#ifndef H_VAR
#define H_VAR
extern uint8_t i;
#endif
uint8_t i = 8;
#include <mega8.h>
#include "var.h"
void main(void)
{
...
while (1)
{
// Place your code here
}
}
Пт янв 13, 2023 20:29:06