Глазки разбегаются...
Там ведь еще и от mcu dude чего-то лежит...
Вышел новый релиз симулятора для ардуино UNO/MEGA
https://www.sites.google.com/site/unoardusim/services
Программатор или отладчик?программатор на обычной ардуине делается
Что за дичь. Зачем тогда написан референс, если "не получить" - это как "немножко беременна".Если использовать только средства референса, полного управления аппаратной начинкой не получить.
Даже для тех же АВРок (не говоря уже о ESPи ARM).
digitalWrite, от того что 32, не так разве работает. Ардуино среде все равно там 32 или 8 - все на себя ядро принимает, потому и одна среда на все ядра - смысл то ардуино в этом."описание различий"... там и разрядность разная (для АВРок одна, для 32-х разрядных другая) и прочие нюансы.
Какая разница где лазить - оно выводится все равно на экран, вики структура нагляднее (имхо) и вики-разметка - это облегчённый язык разметки. Сама википедия см.Я ж не зря привел пример трактовок для "стандартного референса" - там ни по гитхабу лазить не требуется...
скорее теперь все микроконтроллеры уже СБИСВ зависимости от степени интеграции применяются следующие названия интегральных схем:
малая интегральная схема (МИС) — до 100 элементов в кристалле
средняя интегральная схема (СИС) — до 1000 элементов в кристалле
большая интегральная схема (БИС) — до 10 тыс. элементов в кристалле
сверхбольшая интегральная схема (СБИС) — более 10 тыс. элементов в кристалле
Ранее использовались также теперь уже устаревшие названия: ультрабольшая интегральная схема (УБИС) — от 1-10 млн до 1 млрд элементов в кристалле[9][10] и, иногда, гигабольшая интегральная схема (ГБИС) — более 1 млрд элементов в кристалле. В настоящее время, в 2010-х, названия «УБИС» и «ГБИС» практически не используются, и все микросхемы с числом элементов более 10 тыс. относят к классу СБИС.
Код: Выделить всё
#include <htc.h>
#define _XTAL_FREQ 16000000
__CONFIG(FOSC_INTOSC & MCLRE_OFF & WDTE_OFF & LVP_OFF & CP_ON & WRT_OFF & PWRTE_OFF & WRT_OFF & BOREN_OFF & LPBOR_OFF & BORV_LO);
void main(){
PORTA=0b00000000;
TRISA=0b00001011;
LATA=0b00000000;
OPTION_REG=0b00000000;
INTCON=0b00000000;
OSCCON = 0x78;
__delay_us(100);
NCO1CON = 0xC0; // NCO enable, NCO output enable, fixed frequency
NCO1CLK = 0x01; // NCO clock = FOSC = 16 MHz
NCO1INCH = 0x00; // NCO increment register high byte
NCO1INCL = 0x84; // NCO increment register low byte
// NCO output toggled at frequency = 2 kHz to get the square wave of 1 kHz
}Код: Выделить всё
#include <htc.h>
#define _XTAL_FREQ 16000000
__CONFIG(FOSC_INTOSC & MCLRE_OFF & WDTE_OFF & LVP_OFF & CP_ON & WRT_OFF & PWRTE_OFF & WRT_OFF & BOREN_OFF & LPBOR_OFF & BORV_LO);
unsigned char gDutycount =0;
const char SINETABLE[40]= {50,55,60,65,70,75,80,85,90,95,100,95,90,85,80,75,70,65,60,55,50,45,40,35,30,25,20,15,10,5, 0,5,10,15,20,25,30,35,40,45};
void main(){
OSCCON = 0x78;
__delay_us(100);
// Timer2 configuration for PWM
PR2 = 99; // PWM period register for 40 kHz
T2CON = 0x04; // Timer2 on
// PWM 1 configuration
PWM1CON = 0xC0; // PWM1 on, PWM 1 output enable
PWM1DCH = 50; // PWM duty initialized to 50%
PWM1DCL = 0;
PIE1bits.TMR2IE =1; // Timer2 interrupt enable
INTCON =0xC0; // Global interrupt enable, peripheral interrupt enable
TRISA = 0x00; // Port A as digital output port
ANSELA = 0x00; // Port A as digital output port
}
void interrupt Timer2_ISR(void)
{
if (TMR2IF)
{ ++gDutycount; // Increment the counter variable by 1
if(gDutycount == 39)
{
gDutycount = 0;
}
PWM1DCH = SINETABLE[gDutycount]; // Load the duty cycle register according to the sine table
TMR2IF = 0;
}
}