|
|
| ||||||||
|
|
|
|
22355
29
0
0
|
|
Опции темы | Поиск в этой теме |
|
|
21
|
|
|
Новичок
Регистрация: 13.06.2010 Последняя активность: 29.10.2015 19:19
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
Цитата:
а с сложен своим синтаксисом всякие спец символы простой и удобный компилятор CodeVisionAVR |
|
|
|
|
|
|
22
|
|
Новичок
Регистрация: 13.06.2010 Последняя активность: 29.10.2015 19:19
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
к примеру мой проект на с "безумные часы"
Код:
/*****************************************************
This program was produced by the
CodeWizardAVR V2.05.0 Professional
Automatic Program Generator
© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 24.11.2011
Author : NeVaDa
Company :
Comments:
Chip type : ATtiny25
AVR Core Clock frequency: 0,032768 MHz
Memory model : Tiny
External RAM size : 0
Data Stack size : 32
*****************************************************/
/**************************************************************************************************************************************************
ПОДКЛЮЧАЕМЫЕ МОДУЛИ,КОНСТАНТЫ,ПРИВЯЗКА ИМЕН,МАКРОСЫ,ГЛОБАЛЬНЫЕ ЯЧЕЙКИ,
**************************************************************************************************************************************************/
#include <tiny25.h>
#include <delay.h>
#include <stdlib.h>
bit on = 0;
unsigned int veroyat;
unsigned int count_veroyat;
register unsigned int secund = 0;
//*************************************************************************************************************************************************
/**************************************************************************************************************************************************
МОДУЛЬНЫЕ БЛОКИ
**************************************************************************************************************************************************/
/*****************************************************
ИНИЦИАЛИЗАЦИЯ АПАРАТНАЯ
*****************************************************/
void InitAll()
{
// Declare your local variables here
// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
// Input/Output Ports initialization
// Port B initialization
// Func5=In Func4=In Func3=In Func2=In Func1=Out Func0=Out
// State5=T State4=T State3=T State2=P State1=0 State0=0
PORTB=0x04;
DDRB=0x03;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=0xFF
// OC0A output: Disconnected
// OC0B output: Disconnected
TCCR0A=0x00;
TCCR0B=0x00;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 0,256 kHz
// Mode: Normal top=0xFF
// OC1A output: Disconnected
// OC1B output: Disconnected
// Timer1 Overflow Interrupt: On
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
PLLCSR=0x00;
TCCR1=0x08;
GTCCR=0x00;
TCNT1=0x00;
OCR1A=0x00;
OCR1B=0x00;
OCR1C=0x00;
// External Interrupt(s) initialization
// INT0: Off
// Interrupt on any change on pins PCINT0-5: Off
GIMSK=0x00;
MCUCR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x04;
// Universal Serial Interface initialization
// Mode: Disabled
// Clock source: Register & Counter=no clk.
// USI Counter Overflow Interrupt: Off
USICR=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
ACSR=0x80;
ADCSRB=0x00;
DIDR0=0x00;
// ADC initialization
// ADC disabled
ADCSRA=0x00;
}
//*****************************************************
//*************************************************************************************************************************************************
/**************************************************************************************************************************************************
ПРЕРИВАНИЯ
**************************************************************************************************************************************************/
interrupt [TIM1_OVF] void timer1_ovf_isr(void)
{
if ((secund == 0) && (on != 1))
{
PORTB.0 = (~PINB.0);
PORTB.1 = (~PINB.1);
secund = 60;
}
else {secund--;}
if (PINB.2 == 1) // ЦИКЛ ТАКТОВ ПО ТАМПЕРУ
{
while (PINB.2 == 1)
{
PORTB.0 = (~PINB.0);
PORTB.1 = (~PINB.1);
delay_ms(200);
}
secund = 60;
}
}
//*************************************************************************************************************************************************
void main(void)
{
InitAll();
PORTB.0 = 1; // НАЧ ИНВЕРС
PORTB.1 = 0;
#asm("sei");
srand(0x0AD1); //ЗАПУСК СЛУЧ ИНИЦИАЛИЗАЦИИ
while (1)
{
unsigned int sluc2;
unsigned int sluc1;
unsigned int sluc3;
unsigned int count;
unsigned int TEMP;
sluc1 = rand();
sluc2 = rand(); // ПОЛУЧЕНИЕ ЧИСЕЛ
if (count_veroyat != 0) // ЕСЛИ ВЕРОЯТНОСТЬ ЕСТЬ ВХОДИМ В НЕЁ
{
sluc3 = (sluc2 + veroyat); // +
sluc2 = (sluc2 - veroyat); // -
if ((sluc1 >= sluc2) && (sluc1 <= sluc3)) // СОВПАДЕНИЕ НАЙДЕНО РЕЖИМ БЕШЕННОГО ТАМПЕРА
{
count = (rand() % 10); // ВЗЯТЬ ВЕЛИЧИНУ ОСТАТКА ОТ ДЕЛЕНИЯ
TEMP = (count * 60); // ПОЛУЧТЬ КОЛ_ВО СЕКУНД
secund += TEMP; // ДОБАВЛЕНИЕ СЕКУНД ДЛЯ КОМПЕНСАЦИИ БЕЗУМИЯ
on = 1; // ЗАПРЕТИТЬ РЕЖИМ ПО ПРЕРИВАНИЯМ
for (; count != 0; count--) // ГЛЮКИ ПОШЛИ
{
PORTB.0 = (~PINB.0);
PORTB.1 = (~PINB.1);
delay_ms(200);
}
on = 0;
}
count_veroyat--;
}
else // ЕСЛИ СТЕРТА ВЕРОЯТНОСТЬ НАЙТИ НОВУЮ
{
count_veroyat = sluc2;
veroyat = (sluc1 % 20);
}
delay_ms(700);
}
}
|
|
|
|
|
23
|
|
Увлеченный
|
Если честно, меня это уже начинает харить! все так распинаются что язык Си такой крутой, куча всяких преимуществ перед ассемблером и т.д. такое чувство я заставляю писать на ассемблере. нравится Си, пишите на Си. я пишу на чем хочу.
и ещё, если кто нибудь ещё захочет сказать что "Си круче" и при этом не знает ассемблер, прочитайте что собой представляет сам язык http://ru.wikipedia.org/wik... оссобенно эту фразу: Команды языка ассемблера один к одному соответствуют командам процессора. Фактически, они и представляют собой более удобную для человека символьную форму записи — мнемокоды — команд и их аргументов. ещё вопросы? |
|
|
|
|
|
24
|
|
Ветеран Фонарёвки
Регистрация: 15.02.2010 Последняя активность: 17.10.2018 15:32
Сообщений: 937
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
|
|
|
|
|
|
25
|
|
Новичок
Регистрация: 13.06.2010 Последняя активность: 29.10.2015 19:19
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
а я не говорю что с круче
он не очень удобен синтаксисом и для него очень важен хороший редактор кода например если {} не выделяються как в редакторе borland6 понять что во что вложено тяжело |
|
|
|
|
|
26
|
|
Новичок
Регистрация: 13.06.2010 Последняя активность: 29.10.2015 19:19
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
примитивный генератор шума на asm тут с точно не нужен
Код:
.include "tn13def.inc"
;**********************************************************************************************************************************************************
; ИМЕНА И НАЗВАНИЯ
;**********************************************************************************************************************************************************
.DEF BUF = R16
.DEF BUF2 = R17
;**********************************************************************************************************************************************************
;НАЧАЛО
.CSEG
.ORG 0x0000
RJMP START
START:
LDI BUF,(1<<PB0) | (1<<PB1) ;НОЖКИ НА ВЫХОД
OUT DDRB,BUF
CLI ;ВСЕ ПРЕРИВАНИЯ ЗАГЛУШЕНЫ
LDI R18,0xF3 ;СЛУЧАЙНЫЕ ЧИСЛА В ЯЧЕЙКИ
LDI R19,0xBB
LDI R20,0xCF
LDI R21,0x09
LDI R22,0x95
LDI R23,0x0F
LDI R24,0x11
LDI R25,0x78
LDI R26,0x34
CIKL_SUM:
ROR R18 ;СДВИГИ С XOR
ROR R19
ROR R20
ROR R21
ROR R22
ROR R23
ROR R24
ROR R25
ROR R26
MOV BUF,R19 ;
EOR BUF,R23 ;XOR
MOV R26,BUF
MOV BUF,R21 ;
EOR BUF,R22 ;XOR
MOV R25,BUF
MOV BUF,R25
SBRC BUF,1 ;ЕСЛИ 1 ТО КОПИРУЕМ ЕЕ В НОЖКУ 0
SBI PORTB,0
SBRS BUF,1 ;ЕСЛИ 0 ТО КОПИРУЕМ ЕГО В НОЖКУ 0
CBI PORTB,0
MOV BUF,R26
SBRC BUF,1 ;ЕСЛИ 1 ТО КОПИРУЕМ ЕЕ В НОЖКУ 1
SBI PORTB,1
SBRS BUF,1 ;ЕСЛИ 0 ТО КОПИРУЕМ ЕГО В НОЖКУ 1
CBI PORTB,1
RJMP CIKL_SUM
|
|
|
|
|
27
|
|
Увлеченный
|
ты лучше бы со схемами выкладывал, ато от одного кода толку мало
|
|
|
|
|
|
28
|
|
Новичок
Регистрация: 13.06.2010 Последняя активность: 29.10.2015 19:19
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
|
|
|
|
|
29
|
|
Увлеченный
|
хехе) не узнал)
да, платы у меня есть, всё никак руки не дойдут до SIM300DZ |
|
|
|
|
|
30
|
|
Новичок
Регистрация: 13.06.2010 Последняя активность: 29.10.2015 19:19
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
|
|
|
|