328P 128kHz как запустить?

В таком виде моргает с периодичностью примерно 6-7сек.

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);
  Delay_ms(1000);                   
  digitalWrite(LED_BUILTIN, LOW); 
  Delay_ms(1000);                 
}
void Delay_ms(uint16_t ms)
 {
  uint16_t tik = 0;
  while(ms)
  {
    while (tik++ < 128)
    {
      asm("nop");
    }
    ms--;
    tik = 0;
  }
}

Ну, значит работает. Надо точную функцию написать, сейчас уже ухожу, буду занят.
Может кто-нибудь ещё поможет

Гувер писал, ссылку не могу найти, что должно всё работать. Хотя ему веры и нет, врятли кто его ядро (кроме него самого, а может и он тоже) запускал на 128кгц)))

Кстати, таймер задействован.

Системный? Да, задействован. Если его отключить - не прошивается.

Опа!
У тебя полный вывод сообщений компилятора включен?
Приведи текстом сообщение об ошибке при загрузке с отключенным таймером (полностью текстом скопируй и сюда вставь)!

Куда пропал то?

Пришлось скоропостижно покинуть работу, как доберусь до работы напишу.

Так это коммерческий проект, который ты хочешь «за спасибо» и наши нервы реализовать?
Осуждаю. И всех призываю осудить!

Какой коммерческий проект? Вы о чем? Простите, что трачу ваше время, лично ваша помощь мне больше не нужна. Берегите нервы. (Береги руку Сеня!)
Остальным поясню, что на работе куча оборудования, запчастей, программаторов,паялок итд и тп, поэтому мне удобнее заниматься этим на работе.

Да вроде не похоже

Это я с функцией накосячил
А так?

  1. Вариант
Спойлер
 void Delay_ms(uint32_t ms)// 
 {
  ms *= 16;//
  while(ms--)
  { 
      asm volatile("nop\n\t");
     
  }
 }

2.Вариант из двух функций

Спойлер
void Delay_1ms()
{
asm volatile("ldi  R17, 0x2A\n\t"
          "LOOP0:  dec  R17\n\t"
                "brne  LOOP0\n\t"
                        "nop\n\t"
                        "nop\n\t");
}


void Delay_ms(uint32_t ms)
{
  while (ms--)
  {
    Delay_1ms();
  }
}

Помню, месяца 4 назад совместными усилиями писали тут блинк для тини10 без использования делей и миллис. Кто за компом, поищите

@Adinah , вы не ответили на вопрос, зачем вам это надо. Если для экономии энергии, то не ясно, нафига вам атмега 328

ты пропустил, вот тут ответил

Ну что там за сообщение то?

ну держи тогда загрузчик для 128khz, скорость порта 1200

:107E000001C0E7C0112484B7811561F0982F9A70E2
:107E1000923041F081FF02C097EF94BF282E80E09E
:107E2000C3D0EEC085E08093810082E08093C000E3
:107E300088E18093C10086E08093C2008CE080934B
:107E4000C4008EE0B1D0259A86E029EF3FEF91E0A3
:107E5000309385002093840096BBB09BFECF1D9A83
:107E6000A8954091C00047FD02C08A9589F723E09C
:107E7000E22EDD24D39435E0C32E41E1B42E88D028
:107E8000853509F448C080F4853409F442C038F4DB
:107E9000813489F1823409F439C08CD034C0813501
:107EA000E1F788E081D0F9CF843709F45DC0D0F4E0
:107EB000863509F437C0843681F76AD069D0182F27
:107EC00067D0082F612C7724739443018FEF681AD1
:107ED000780A5ED0F40180831611F7CF6BD0053499
:107EE00029F5FFCF8537C9F665D08EE14AD085E9FF
:107EF00048D08FE007C04CD0182F5CD083E01138F9
:107F000009F488E03ED080E13CD0B9CF84E15AD07A
:107F1000FACF85E0FCCF3CD0C82F3AD0D82FCC0F79
:107F2000DD1FBBCF84E04ED080E0ECCFFE01E7BE8A
:107F3000E89507B600FCFDCFFE0120E031E0D90155
:107F40002E5F3F4F8D919C910C01D7BEE895112477
:107F500032961213F4CFFE01C7BEE89507B600FCB7
:107F6000FDCFB7BEE895CFCF13D012D0F82E10D0EA
:107F700021D08E01F80185918F0103D0FA94D1F7B9
:107F8000C2CF9091C00095FFFCCF8093C6000895AA
:107F90008091C00087FFFCCF8091C00084FD01C0AC
:107FA000A8958091C6000895E0E6F0E098E19083FE
:107FB00080830895EDDF803219F088E0F5DFFFCF90
:107FC00084E1DFCFCF93C82FE3DFCA95E9F7CF91E4
:107FD000F1CFFC010A0167BFE895112407B600FC48
:107FE000FDCF6670611529F0452B19F481E187BF3B
:047FF000E895089573
:027FFE00030876
:0400000300007E007B
:00000001FF

и 2400:

:107E000001C0E7C0112484B7811561F0982F9A70E2
:107E1000923041F081FF02C097EF94BF282E80E09E
:107E2000C3D0EEC085E08093810082E08093C000E3
:107E300088E18093C10086E08093C2008CE080934B
:107E4000C4008EE0B1D0259A86E029EF3FEF91E0A3
:107E5000309385002093840096BBB09BFECF1D9A83
:107E6000A8954091C00047FD02C08A9589F723E09C
:107E7000E22EDD24D39435E0C32E41E1B42E88D028
:107E8000853509F448C080F4853409F442C038F4DB
:107E9000813489F1823409F439C08CD034C0813501
:107EA000E1F788E081D0F9CF843709F45DC0D0F4E0
:107EB000863509F437C0843681F76AD069D0182F27
:107EC00067D0082F612C7724739443018FEF681AD1
:107ED000780A5ED0F40180831611F7CF6BD0053499
:107EE00029F5FFCF8537C9F665D08EE14AD085E9FF
:107EF00048D08FE007C04CD0182F5CD083E01138F9
:107F000009F488E03ED080E13CD0B9CF84E15AD07A
:107F1000FACF85E0FCCF3CD0C82F3AD0D82FCC0F79
:107F2000DD1FBBCF84E04ED080E0ECCFFE01E7BE8A
:107F3000E89507B600FCFDCFFE0120E031E0D90155
:107F40002E5F3F4F8D919C910C01D7BEE895112477
:107F500032961213F4CFFE01C7BEE89507B600FCB7
:107F6000FDCFB7BEE895CFCF13D012D0F82E10D0EA
:107F700021D08E01F80185918F0103D0FA94D1F7B9
:107F8000C2CF9091C00095FFFCCF8093C6000895AA
:107F90008091C00087FFFCCF8091C00084FD01C0AC
:107FA000A8958091C6000895E0E6F0E098E19083FE
:107FB00080830895EDDF803219F088E0F5DFFFCF90
:107FC00084E1DFCFCF93C82FE3DFCA95E9F7CF91E4
:107FD000F1CFFC010A0167BFE895112407B600FC48
:107FE000FDCF6670611529F0452B19F481E187BF3B
:047FF000E895089573
:027FFE00030876
:0400000300007E007B
:00000001FF

Он хрен забил, судя по всему. Это печально и обидно. Потраченное время не вернуть.

С таким же успехом в следующий раз ТС задаст вопрос с какой скоростью проедет мерс на квадратных колёсах километров, пока не развалится кузов. Ну просто, ради интереса.))))

1 лайк

И сразу свалит, как иногда тут бывает ))

https://forum.arduino.ru/t/ne-rabotaet-kod-na-attiny10/13682/80
Если речь про эту тему, то как раз был занят, глянул тогда немного последние посты, всю не читал.

Сейчас вопрос по коду из #80
Возможно ошибаюсь, но как по мне эта функция(_delay_us) должна одинаково работать на всех AVR -ках, но на нано выдаёт довольно большую ошибку, т.к. не учитывает все такты цикла while. Может я чего и не понял

Спойлер
#define F_CPU 16000000UL
#define __ticks_dc  ((F_CPU) / 1e6) 

void _delay_us(uint32_t __us)
{
    while (__us) {
    __builtin_avr_delay_cycles(__ticks_dc);
    __us--;
    }
}


void setup() {
 Serial.begin(9600);
}

void loop() {
 static uint8_t a = 0;
 static uint32_t start_m;
 static uint32_t stop_m;
 start_m = micros();
 _delay_us(1000);
 stop_m = micros();
 Serial.println(a);
 Serial.println(stop_m - start_m);
 delay(500);
 a++;
}

Спойлер